String
public class StringTest {
public static void main(String[] args) {
String H = "hello";
String H_1 = H;
String H_2 = "hel";
String H_3 = H_2 + "lo";
String H_4 = H_2.concat("lo");
System.out.println(H); // hello
System.out.println(H_1); // hello
System.out.println(H_2); // hel
System.out.println(H_3); // hello
System.out.println(H_4); // hello
//==等号测试
System.out.println(H == H_1); // true
System.out.println(H == H_3); // false
System.out.println(H == H_4); // false
System.out.println(H_3 == H_4); // false
//equals函数测试
System.out.println(H.equals(H_1)); // true
System.out.println(H.equals(H_3)); // true
System.out.println(H.equals(H_4)); // true
System.out.println(H_3.equals(H_4)); // true
//StringBuilder测试
StringBuilder helloBuilder = new StringBuilder("hel");
System.out.println(helloBuilder.equals(H_2)); // false
}
}
StringBuilder类并没有重写equals方法,因此使用equals比较时,需要时同一个实例才会返回true。否则返回false。
当我们使用“+”或者“concat”方法拼接字符串的时候,会创建一个新的字符串,占用新的内存空间,因此使用“==”判断时返回false。
String是一种不可变类,字符串一但生成就不能被改变。例如我们使用**‘+’进行字符串连接,会产生新的字符串,原串不会发生任何变化;使用replace()** 进行替换某些字符的时候也是产生新的字符串,不会更改原有字符串。
// Some code
String demo = "Hello,world!";
1.int length = demo.length(); //获取字符串的长度
2.boolean equals = demo.equals("Hello,world"); // 比较两个字符串相等
3.boolean contains = demo.contains("word"); // 是否包含子串
4.String replace = demo.replace("Hello,", "Yeah@"); // 将指定字符串(或正则表达式)替换,返回替换后的结果
5.char little = demo.charAt(5); // 查找字符串中索引为5的字符(索引从0开始)
6.String trim = demo.trim(); // 将字符串左右空格去除,返回去除空格后的结果
7.String concat = demo.concat("Great!"); // 拼接字符串,返回拼接结果
8.char[] charArray = demo.toCharArray(); // 返回该字符串组成的字符数组
9.String upperCase = demo.toUpperCase(); // 返回该字符串的大写形式
10.String lowerCase = demo.toLowerCase(); // 返回该字符串的小写形式
Last updated