1、字符串常见操作
1.1字符串比较
String str1 = "hello";
String str2 = "Hello";
//不区分大小写比较
System.out.println(str1.equalsIgnoreCase(str2));//true
//compareTo方法 :按照字典序来比较
// 相等:返回0 小于:返回内容小于0 大于:返回内容大于0
String str1 = "hello";
String str2 = "world";
System.out.println(str1.compareTo(str2));//返回内容小于0
1.2字符串查找
String str1 = "hello world";
String str2 = "world";
//1.通过contains方法判定是否有包含关系
System.out.println(str1.contains(str2));//true
//2.indexof方法不仅可以查看是否存在,还可查看字符串的所在位置
//返回值是str2在str1中的下标位置
// 如果查找的内容在str1中重复,返回最左侧字符串下表。
System.out.println(str1.indexOf(str2));//6
String str3 = "hello world world";
//lastIndexOf 从右往左找最匹配的字符串
System.out.println(str3.lastIndexOf(str2));
//3.startsWith 以什么开头 endsWith 以什么结尾
System.out.println(str1.startsWith("h"));//true
System.out.println(str1.endsWith("d"));//true
1.3字符串替换
replaceAll : 替换所有的指定内容
replaceFirst :替换首个内容
两者都不修改原始字符串,而是得到新的字符串
String str1 = "hello world";
String str2 = str1.replaceAll("hello","java");
System.out.println(str2);//java world
String str3 = str1.replaceFirst("ll","LL");
System.out.println(str3);//heLLo world
System.out.println(str1);//hello world
1.4字符串拆分
//按照空格拆分
String[] array = str1.split(" ");
System.out.println(Arrays.toString(array));//[How, are, you]
String str2 = "192.168.1.1";
//正则表达式中 . 具有特定含义,需要通过\.查找文本
//Java中\\表示一个文本\
String[] array2 = str2.split("\\.");
System.out.println(Arrays.toString(array2));//[192, 168, 1, 1]
//多次拆分
String str3 = "name=Bo&&age=10";
String[] array3 = str3.split("&&");
for (String tmp:array3) {
String[] array4 = tmp.split("=");
System.out.println(array4[0] + " : " + array4[1]);
//name : Bo age : 10
}
1.5截取字符串
//字符串截取substring方法
String str1 = "helloworld";
//从指定位置到结尾
System.out.println(str1.substring(9));//d
//截取部分内容 前闭后开区间
System.out.println(str1.substring(5,7));//wo
1.6其他操作方法
trim()方法:去掉字符串中的空白字符
String str = " \n\t hello \n\t ";
System.out.println(str);// hello
System.out.println(str.trim());//hello
toUpperCase() 方法: 字符串转大写
toLowerCase()方法:字符串转小写
String str1 = "HELLO";
System.out.println(str1.toLowerCase());//hello
String str2 = "world";
System.out.println(str2.toUpperCase());//WORLD
length()方法:获取字符串长度
String str1 = "HELLO";
System.out.println(str1.length());//5
isEmpty()方法:判断字符串是否为空,不是null,而是长度为0
String str1 = "HELLO";
String str2 = "";
System.out.println(str1.isEmpty());//false
System.out.println(str2.isEmpty());//true
2、StringBuffer和StringBuilder
String是不可变对象,为了方便字符串的修改,提供StringBuffer和StringBuilder类。
StringBuffer和StringBuilder的区别:StringBuffer与StringBuilder大部分功能是相似的,StringBuffer采用同步处理,属于线程安全操作;而StringBuilder未采用同步处理,属于线程不安全操作。
//StringBuffer和StringBuilder
//字符串反转
StringBuffer str1 = new StringBuffer("helloworld");
System.out.println(str1.reverse());//dlrowolleh
//删除指定范围
StringBuffer str2 = new StringBuffer("howareyou");
System.out.println(str2.delete(5,6));//howaryou
//插入数据
StringBuffer str3 = new StringBuffer("howareyou");
System.out.println(str3.insert(3,"old"));//howoldareyou