Java基础-String和StringBuilder类型(11)

String类概述

字符串是由多个字符组成的一串数据
字符串可以看成是字符数组

构造方法

public String(String original)
public String(char[] value)
public String(char[] value,int offset,int count)
直接赋值也可以是一个对象

注意:字符串是比较特殊的引用类型,直接输出该字符串对象打印的不是地址值而是该对象的值.

两个string不能用==判断是否相等,因为引用数据类型比较的是引用数据类型的地址值是否相等.

        String s1 = new String("hello");
        String s2 = "hello";
        
        System.out.println("s1:"+s1);
        System.out.println("s2:"+s2);
        
        System.out.println("s1==s2:"+(s1==s2)); //false
        
        String s3 = "hello";
        System.out.println("s1==s3:"+(s1==s3)); //false
        System.out.println("s2==s3:"+(s2==s3)); //true    

代码的内存图如下

《Java基础-String和StringBuilder类型(11)》

字符串的内容是存储在方法区的常量池里面的,是为了方便字符串的重复使用.

当用new String()时,堆中的string对象值为常量池中字符串的地址,string变量存的是堆中对象的地址.

当直接赋值时,strig变量的值为常量池中字符串的地址.

String类的判断功能

boolean equals(Object obj)
boolean equalsIgnoreCase(String str)
boolean startsWith(String str)
boolean endsWith(String str)

String类的获取功能

int length()
char charAt(int index)
int indexOf(String str)
String substring(int start)
String substring(int start,int end) //包括左边的不包括右边的

String类的转换功能

char[] toCharArray()
String toLowerCase()
String toUpperCase()

String类的其他功能

去除字符串两端空格
String trim()
按照指定符号分割字符串
String[] split(String str)

StringBuilder类概述

我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuilder就可以解决这个问题

StringBuilder是一个可变的字符串。字符串缓冲区类。

String和StringBuilder的区别:String的内容是固定的.StringBuilder的内容是可变的.

StringBuilder类的常用方法

添加功能
public StringBuilder append(任意类型)
反转功能
public StringBuilder reverse()

StringBuilder和String相互转换

StringBuilder–>String:   stringBuilder.toString();

String–>StringBuilder:   new StringBuilder(str);

点赞

Leave a Reply

Your email address will not be published. Required fields are marked *