String类
String s1="mainsdui";
String s2="mainsdui";
s1= "good";
System.out.println(s1);
System.out.println(s2);
输出结果:good mainsdui
这是很简单的
上面代码中,创建s1时,jvm会在常量池中创建一个mainsdui字符串对象, 创建s2时,jvm会去常量池中搜索,此时常量池中有mainsdui,所以就不创建了,直接让s2指向之前创建的mainsdui.当执行到最后一行时, jvm会在常量池中创建一个good, 然后让s1指向这个good,而不是将常量池中的mainsdui修改为good,所以说常量池中的对象内容是不可修改的。
输出结果:true true false true
注意:比较两个字符是否一致最好使用equals方法
String s7 ="a";
String s8 ="b";
String s9 ="ab";
String s10 =s7+s8;//开辟新的内存空间
Systrm.out.println(s9 == s10);
输出结果false
/ /尽 量避免对String对象进行频繁的拼接操作
错误演示:
String s11 = " ";
for(int i=0;i<100;i++){
s11+=i;
}
System.out.println(s11);
输出结果,乱七八糟的数字// 如果要用建议使用StringBuffer StringBuilder
String类常用方法
1.char charAt(int index);获取index位置的字符
2.boolean contains(CharSequence s)判断字符串中是否包含某个字符串
3. boolean endsWith(String endStr);判断是否是以某个字符串结尾
4. boolean equalslgnoreCase(String anotherString);忽略大小写比较两个字符串是否相等
5. byte[] getBytes():转换成byte数组
6. int indexOf(String str);取得指定字符在字符串的位置
7. int indexOf(String str, int fromIndex);从指定的下标开始取得指定字符在字符串的位置
8. int lastIndexOf(String str);从后面开始取得指定字符在字符串最后出现的的位置
9. int lastlndexOf(String str, int fromIndex);从后面开始指定的下标开始取得指定字符在字符串的位置
10. int length();获取字符串的长度
11. String replaceAll(String s1,String s2);替换字符串中的内容
12. String[] split(String s);根据指定的表达式拆分字符串
13. boolean startsWith(String s);判断是否是以某个字符串开始
14. String substring(int begin);根据传入的索引位置截子串
15. String substring(int beginlndex, int endIndex);根据传入的起始和结束位置截子串
16. char[] toCharArray();将字符串转换为char数组
17. void toUpperCase();转换为大写
18. void toLowerCase();转换为小写
19. String trim();去除空格
20. String valueOf(Object obj;将其他类型转换为字符串类型