2.String类
2.1常用的String方法
方法名 | 描述 |
---|---|
str.length() | Java字符串就是Unicode字符序列 |
str.toUpperCase() | 大写 |
str.toLowerCase() | 小写 |
str.indexOf("学") | 获取指定字符的索引位置 |
str.charAt(5) | 获取单个字符 |
str.substring(5) | 截取子串 |
str.substring(5, 7) | 截取子串 |
str2.trim() | 去两头空 |
str3.replace("j", "J"); | 将j替换成J并返回 |
str4.split("#") | 按"#"分割为字符串数组 |
str4.contains("struts2") | 字符串包含 |
str4.concat("#spring").concat("#ibatis") | 连字符 |
str4.isEmpty() | 判断是否为 空字符串 |
replaceAll(String regex, String replacement) | 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。 |
2.2、关于String类的 ==和equals的辨析
String str1 ="我爱中国china";
String str2 ="我爱中国china ";
String str3 ="我爱中国CHINA";
String str4 =new String("我爱中国china");
String str5 =new String("我爱中国china");
System.out.println(str1==str2);//true
System.out.println(str4==str5);//false
System.out.println(str1==str4);//false
System.out.println("----------------");
System.out.println(str1.equals(str2));//内容true
System.out.println(str4.equals(str5));//内容true
System.out.println(str1.equls(str4));//内容true
System.out.println(str1.equals(str3));
System.out.println(str1.equalsIgnoreCase(str3));
System.out.println(str1.compareTo(str2));//0
System.out.println(str1.compareTo(str3));//32
System.out.println(str3.compareTo(str1));//-32
System.out.println(str1.compareToIgnoreCase(str3));//0
2.3StringBuffer
- StringBuffer 可变字符序列 buffer 缓冲区
- 硬盘比内存慢 ,在内存中提供一块buffer,将硬盘中的数据先读取到内存的buffer中,内存需要写数据到硬盘中时,先写到buffer中,然后一次性写到硬盘中内存比CPU慢,可以在cpu中提供一块buffer(cache),原理同内存中的buffer,解决内存和CPU速度不匹配的问题
2.4.StringBuffer的常用操作
- 1.添加
buffer.append(" JavaSE");
buffer.insert(index, "# Servlet");
- 2.删除
buffer.deleteCharAt(27);
buffer.delete(27, 35);
- 3.更新/替换
buffer.replace(0, 4, "JAVA");
- 4.显示
buffer.toString()
- 5.其他
buffer.reverse();
- 注意:所有的操作都是在StringBuffer上面直接进行操作,而不是另外开辟空间,所以称为可变字符序列
2.5.StringBuilder 和StringBuffer
可变字符串:
StringBuilder:
-
1.线程不安全,适合在单线程的环境
-
2.效率高
StringBuffer : 可变
-
1.线程安全,适合在多线程的环境
-
2.相对于StringBuilder效率低