先在定义字符串:
1 String str="字符串常量"; 2 String str1=new String("字符串常量"); 3 String str2=new String("字符串常量"); 4 str="字符串常量字符串常量";
1、判断字符串开始
1 System.out.println("是否以“字符串”开头="+str.startsWith("字符串")); 2 System.out.println("是否以“字符串”开头="+(str.indexOf("字符串")==0));
//此方法是通过查看下标是否为0判断
运行结果为:
2、判断字符串结束
类比字符串开始,显然有: 1 System.out.println("是否以“常量”结束="+str.endsWith("常量"));
但除此之外还有: 1 System.out.println("是否以“量”结束="+(str.lastIndexOf("量")==str.length()-1)); //此方法是通过查看字符串长度来判断
运行结果为:
3、截取子字符串
方法一:只传递开始位置
1 System.out.println("截取1="+str.substring(1));//从开始到结束,包含开始索引位置的字符
运行结果为:
方法二:传递开始和结束位置索引
1 System.out.println("截取3,5="+str.substring(3, 5));//5-3=2,只截取2个位置 2 System.out.println("截取3,10="+str.substring(3, 10));
其中注意:
不包含结束位置的字符
截取字符的个数=结束位置索引-开始位置索引
结束位置索引>=开始位置索引,不然报错
结束位置索引<=字符串长度
运行结果为:
4、去空格
方法一:去前后空格
1 str1=" 张 三 "; 2 System.out.println("去前后空格="+str1.trim());
运行结果为:
方法二:去全部空格
1 System.out.println("去全部空格="+str1.replace(" ", ""));
运行结果为:
5、查找替换
可以用上面的replace编写
1 System.out.println("查找替换="+str.replace("常量", "变量"));
运行结果为:
再运行: 1 System.out.println("str="+str);
运行结果为:发现str并没有改变,说明replace并不对str进行改变
那如何只替换第一个?用replaceFirst,即:
1 System.out.println("查找替换="+str.replaceFirst("常量", "变量"));
运行结果为:
5、大小写转换(只对英文字母有效果)
1 str1="abcdeGGHHiiMM"; 2 System.out.println("转成大写:"+str1.toUpperCase()); 3 System.out.println("转成小写:"+str1.toLowerCase());
运行结果为:
6、字符串分割
1 str2="姓名~21~男~地址~123456"; 2 String[] a=str2.split("~"); 3 int i=1; 4 for(String t:a) 5 { 6 System.out.println(i+": "+t); 7 i++; 8 }
运行结果为:
最后附上相关思维导图