String类及其衍生类的简单理解

String类及其衍生类的简单理解

String

String指的是字符串的类,在java中,它是不可以更改的。

1.下面简单介绍两种构造方法。

public class haohaoxuexi {

    public static void main(String[] args) {

        String a=new String();
        String b="abc";
    }
}

这是两种常用的构造方法

但值得注意的是,两者在内存的存储中有很大区别,其上,a变量储存在堆区中,而b变量储存在串池中。

2.那我们该如何比较两个字符串的内容是否一致呢?

大多数一开始都会想的“”,但String是引用数据类型,只有是基本数据类型,“”才能判断内容是否相等,如果是引用数据类型,则是判断地址值是否相等,这显然违背了我们的初衷。

String类中封装了很多方法,其中就有方法解决了这个问题,下面进行简单的演示

public class haohaoxuexi {

    public static void main(String[] args) {

        String a=new String("abc");
        String b="abc";
        a.equals(b);
        a.equalsIgnoreCase(b);
    }

equals就是判断a与b变量内容是否相等的方法,这高效的解决了这个问题。

3.java与c++不同的是,java中的string类没有提供【】运算符的重载,那我们该如何遍历我们的String类呢?

java中同样提供了丰富的方法解决这个问题,下面进行简单的演示。

public class haohaoxuexi {

    public static void main(String[] args) {

        String a=new String("abc");
        for (int i = 0; i <a.length() ; i++) {
            a.charAt(i);
        }
    }
}

charAt方法可以拿出String中的每一个字母,,这样就提供了便利的方法。

此外还有一种方法,就是把String转换为字符数组进行遍历,简单的代码演示如下

String a = new String("abc");
char[] arr = a.toCharArray();//字符数组故为char
for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
}

既然字符串可以转变为字符数组,字符数组自然可以转变为字符串。这便衍生出了String的第三种构造方式

String a = new String("abc");
char[] arr = a.toCharArray();//字符数组故为char
for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
}
String b=new String(arr);

如上,字符数组arr又可以被字符串b进行接受,但值得注意的是,他们本身不是一种形式转换为另外一种形式,而是不同数据类型间内容不变的拷贝。

StringBuilder类

StringBuilder是一个容器,它的主要功能是字符串的拼接与反转。与String最大的不同是,该容器是可以变化的,所以极大减少了拼接时候的运行效率,

下面展示一下他的拼接操作与反转操作

StringBuilder sb= new StringBuilder();
sb.append("a");
sb.append("b");
sb.append("c");
sb.append("d");
 System.out.println(sb);

这样便打印出了a,b,c,d,因为append方法的返回值是Stringbuilder,所以可以采取链式编程

   StringBuilder sb= new StringBuilder();
   sb.append("a").append("b").append("c").append("d");
}

下面介绍他的反转操作

StringBuilder sb= new StringBuilder();
sb.append("a").append("b").append("c").append("d");
sb=sb.reverse();
System.out.println(sb);

调用了reverse方法,打印出来的便是dcba

这便是对String和StringBuilder类的简单理解。

posted @ 2025-01-18 10:08  懒洋洋血洗青青草原  阅读(15)  评论(0)    收藏  举报