- 字符串是常量,创建之后不可改变
- 字符串字面值存储在字符串池中,可以共享
package com.Class.StringClass;
public class overview {
public static void main(String[] args) {
String str = "name";//"name"存储在字符串池中
str = "age";//"name"还在字符串池中,同时,在字符串中也加入了"age",并且此时的str指向了"age","Hello"变成了垃圾
String str1 = "age";//创建str1后,先在字符串池中找"age",发现有,直接指向它,从而实现了常量的共享
Integer integer1 = str.hashCode();
Integer integer2 = str1.hashCode();
System.out.println(integer1);
System.out.println(integer2);
System.out.println(str==str1);
System.out.println(str.equals(str1));
String s = new String("Hello");//产生两个对象 在堆和池中各有一个 "Hello"
String s1 = new String("Hello");
// ==比较的是地址 equals比较的是值
System.out.println(s==s1);
System.out.println(s.equals(s1));
}
}
输出结果:
常用方法
- length();返回字符串的长度
- charAt(int index);返回某个位置的字符
- contains(String str);判断是否包含某个子字符串
- toCharArray();返回字符串对应的数组
- indexOf();返回子字符串首次出现的位置
- lastIndexOf();返回字符串最后一次出现的位置
- trim(); //去掉字符串前后空格
- toUpperCase(); toLowerCase(); 转换大小写
- endWith(str); startWith(str); 判断是否以str 结尾、开头
- replace(char old, char new); 用新的字符或字符串替换旧的字符或字符串
- split(); 对字符串拆分
package com.Class.StringClass;
import java.util.Arrays;
public class commonMethod {
public static void main(String[] args) {
//字符串方法的使用
//1.length();返回字符串的长度
//2.charAt(int index);返回某个位置的字符
//3.contains(String str);判断是否包含某个子字符串
String str = "java is the best language,java is so good";
System.out.println(str.length());
System.out.println(str.charAt(3));
System.out.println(str.contains("java"));
System.out.println(str.contains("php"));
//4.toCharArray();返回字符串对应的数组
//5.indexOf();返回子字符串首次出现的位置
//6.lastIndexOf();返回字符串最后一次出现的位置
System.out.println(str.toCharArray());//java is the best language
System.out.println(Arrays.toString(str.toCharArray()));
System.out.println(str.indexOf("is"));
System.out.println(str.indexOf("is", 4)); // 从索引4开始找
System.out.println(str.lastIndexOf("is"));
// 7. trim(); //去掉字符串前后空格
// 8. toUpperCase(); toLowerCase(); 转换大小写
// 9. endWith(str); startWith(str); 判断是否以str 结尾、开头
String ct = " Hello World ";
System.out.println(ct.trim());
System.out.println(ct.toUpperCase());
System.out.println(ct.toLowerCase());
System.out.println(ct.endsWith("World"));
System.out.println(ct.startsWith("Hello"));
// 10. replace(char old, char new); 用新的字符或字符串替换旧的字符或字符串
// 11. split(); 对字符串拆分
System.out.println(str.replace("java", "php")); // php是最好的语言, php no1
String say = "java is the best language";
String[] arr = say.split(" ");
//使用split方法时,如果有空格和逗号 --> String[] arr = say.split("[ ,]");
//使用split方法时,如果有多个空格和逗号 --> String[] arr = say.split("[ ,]+");
System.out.println(arr.length);
for(String string : arr){
System.out.println(string);
}
// 补充两个equals/compareTo();比较大小
String s1 = "hello";
String s2 = "HELLO";
System.out.println(s1.equalsIgnoreCase(s2));// 忽略大小写比较 true
// compareTo(); 两字符不同时比较字符字典序的ascii码
// 字符相同时比较长度 返回差值
System.out.println(s1.compareTo(s2));//32
}
}
输出结果: