常用字符串API
- 获取字符串长度:int length();
String s = "xxxx";
syso(s.length());
// 输出结果:4
- 判断字符串内容是否相同:boolean equals(Object obj)
String str1 = "你好";
String str2 = "您好";
System.out.println(str1.equals(str2));
// 返回结果false
- 不区分大小写的字符串内容比较:boolean equalsIgnoreCase(String str);
String str1 = "abC";
String str2 = "ABc";
System.out.println(str1.equalsIgnoreCase(str2));
//返回结果true
- 将字母全部转换为大写:String toUpperCase();
将字母全部转换为小写:String toLowerCase();
String str = "ABC";
System.out.println(str.toLowerCase());
// 输出结果abc
String str2 = "abc";
System.out.println(str2.toUpperCase());
// 输出结果ABC
- 字符串拼接:String concat(String anotherString);
String str1 = "你好,";
String str2 = "我叫小明";
System.out.println(str1.concat(str2));
// 输出结果:你好,我叫小明
- 查找指定字符串第一次出现的位置:int indexOf(String subStr);
String str1 = "你好,我叫小明";
System.out.println(str1.indexOf("好"));
// 输出结果:1(字符串底层代码时特殊数组,输出了“好”字所在的索引下标)
- 从指定位置(包含)开始,查找指定字符串出现的位置:int indexOf(String subStr,int fromIndex);
String str1 = "你好,我叫小明";
System.out.println(str1.indexOf("我",0));
// 输出结果:4
- 查找指定字符串最后一次出现的位置:int lastIndexOf(String subStr);
String str1 = "AABBCCDDDDEE";
System.out.println(str1.lastIndexOf("D"));
// 输出结果:9最后一次出现的下标位置为9
- 从指定位置开始截取子字符串:String substring(int startIndex);
String str = "你好,我叫小明";
System.out.println(str.substring(3));
// 输出结果:我叫小明
- 从指定位置开始截取到指定位置结束的子字符串:String substring(int startIndex,int endIndex); [startIndex,endIndex)
String str = "你好,我叫小明";
System.out.print(str.substring(0,5));
// 输出结果:你好,我叫
- 获取指定索引的字符:char charAt(int index);
String str = "你好,我叫小明";
System.out.println(str.charAt(3));
// 输出结果:我
- 去除字符串两端空格:String trim();
String str = " 你好,我叫小明i";
System.out.println(str);
System.out.println(str.trim());
// 输出结果:
你好,我叫小明
你好,我叫小明
- 替换字符串:String replace(String oldStr,String newStr);
String str = "你好,我叫小明";
System.out.println(str.replace("小明", "小红"));
// 输出结果:你好,我叫小红
- 拆分字符串:String[] split(String 正则表达式);
String str = "你好 我叫小明";
String[] i = str.split(" ");
for (String string : i) {
System.out.println(string);
}
// 输出结果:你好
我叫小明
- 将字符串转换为字符数组:char[] toCharArray();
String str = "你好 我叫小明";
char[] c = str.toCharArray();
for (char d : c) {
System.out.println(d);
// 输出结果:你
好
我
叫
小
明
2. tringBuffer的基本使用
String字符串 Buffer缓冲区
字符串String 引用数据类型,那么每一次使用字符串都需要创建对象(在方法区中存在一个字符串常量池,所以有些时候,它不会创建对象),字符串拼接的时候,每一次都在创建新的字符串对象,效率特别低!
循环中不要使用+号来拼接字符串,因为底层是使用StringBuffer/StringBuilder实现的。
循环外面,也不推荐使用+号,虽然它不会转换为StringBuffer/StringBuilder但是他会产生新的字符串对象。
构造方法:
StringBuffer();
StringBuffer(String str);
常用方法:
append(任意类型数据); 追加字符串
StringBuffer strBuffer = new StringBuffer();
strBuffer.append("你好,");
strBuffer.append("我是小明");
System.out.println(strBuffer);
// 输出结果:我是小明
insert(int index,任意类型数据); 在指定位置插入任意数据 原有数据后移
StringBuffer strBuffer = new StringBuffer();
strBuffer.append("我");
strBuffer.append("是小明");
strBuffer.insert(0, "大家好!!");
System.out.println(strBuffer);
// 输出结果:大家好!!我是小明
reverse(); 字符串反转
StringBuffer strBuffer = new StringBuffer();
strBuffer.append("我");
strBuffer.append("是小明");
strBuffer.insert(0, "大家好!!");
strBuffer.reverse();
System.out.println(strBuffer);
// 输出结果:明小是我!!好家大
toString(); 转换为字符串
String和StringBuffer的区别
String追加字符串的时候是新建数组追加,而StringBuffer则是直接在后面追加