- 自有方法
// String(不可变) StringBuilder(可变安全效率低) StringBuffer(可变不安全效率高)
public class ZifuChuan {
public static void main(String[] args) {
String str = "hello111Word";
String str1 = "adlloWord";
//字符串常用方法 length 不可变性,可以用for遍历
// charAt(index) 返回指定位置的索引
// isEmpty() 返回布尔值,判断字符串是否为空
// toLowerCase() toUpperCase() 原字符串不变,返回值:转化为大写 小写
// trim() 原字符串不变,返回值:是去掉原有字符串首未的空格
//equals() 比较内容是否一致,返回值:为布尔值
//equalsIgnoreCase() 忽略大小写比较,返回值:为布尔值
// compareTo() 比较字符串大小,负数表示前面的数小,0表示一样, 返回值:为正数 0 负数 h-a 为正数 排序
//substring(startIndex,endIndex) 返回值:截取字符串,不包含endIndex的索引的。原字符串不变
//endsWith() 返回值:布尔值。以什么结尾
//startsWith()返回值:布尔值。以什么开始
//contains(str) 返回值:布尔值。当前字符串是否包含参数字符串
//indexOf() 返回值:索引值,没找到返回值是 -1 lastIndexOf()
// replace(str1,str2) 返回值:替换后的字符串
// replaceAll(正则,str2) 返回值:替换后的字符串 正则(格式化)
// matches(正则) 返回值:布尔值 (校验)
// split(正则) 返回值:数组 (字符串数组化)
int i = str.compareTo(str1);
System.out.println(i);
int h = str.indexOf("p");
System.out.println(h);
String s = str.replaceAll("\\d+", "|");
System.out.println(s);
String[] split = s.split("\\|");
for (Object o: split
) {
System.out.println("split---"+o);
}
//StringBuffer/StringBuilder 额外的方法 原有字符串会改变
// append(str) 拼接
// delete(startIndex,endIndex) 删除指定索引
// replace(startIndex,endIndex,str) 替换
// insert(index,str) 插入
// reverse() 翻转
//indexOf() substring():原有字符串不变
//charAt() setCharAt(index,'')替换
StringBuffer str4 = new StringBuffer("abce");
str4.reverse();
System.out.println(str4);
str4.setCharAt(0,'p');
}
}
- 工具常用方法
/**
* 格式化string
* 1.String.format
* 2.MessageFormat.format 更加灵活
*
*/
@Test
public void test(){
String name = "小王";
String age = "18";
String s = String.format("我叫%s,我"%s"岁了", name, age);
log.info("s:{}", s);
String msgFormat = MessageFormat.format("我叫{0},我"{1}"岁了", name, age);
log.info("msgFormat:{}", msgFormat);
}