1 替换函数
① replace 即可以替换字符,也替换 字符串。
String str1 = "123&123&123&";
//使用@替换掉字符串里所有的&符
String result = str1.replace("&", "@");
//使用[email protected] 替换掉 123&
String result2 = str1.replace("123&", "[email protected]");
② replaceall 参数是regex(正则表达式),即基于规则表达式的替换。比如,可以通过replaceAll("\\d", "*")把一个字符串所有的数字字符都换成 *
String str1 = "123&abc&123&";
//将所有的数字替换成符号 *
String result = str1.replaceAll("\\d", "*");
System.out.println(result);
结果:
***&abc&***&
//使用正则表达式替换所有空格
String str2 = "123 &abc &123& ";
String result2 = str2.replaceAll("\\s{1,}", "");
结果:
123&abc&123&
2 字符串截取函数
① substring
String str3 = "123&abc&123&";
//从第2位开始截取一直到字符串末尾,不包含第2位
String result3 = str3.substring(2);
结果:
//3&abc&123&
//从第2位开始截取到第11位,不包含第2位
String str4 = "123&abc&456&";
String result4 = str4.substring(2,11);
结果:
//3&abc&456
② StringUtils.substringBefore
//通过StringUtils提供的方法(org.apache.commons.lang3包下,需要下载commons-lang3 jar包,导入到项目里)
String str5 = "123&abc&456&";
//截取到第一个&符之前的所有字符串
String result5 = StringUtils.substringBefore(str5, "&");
//123
String str5 = "123&abc&456&";
//截取到最后一个 & 符之前的所有字符串
String result6 = StringUtils.substringBeforeLast(str5, "&");
//123&abc&456
3 字符串分割函数
split函数,按指定字符(串)或正则表达式去分割某个字符串,结果以字符串数组形式返回。
String str5 = "123&abc&456&";
//按照 & 分割字符串
String[] result5 = str5.split("&");
for(String str:result5)
{
System.out.println(str);
}
结果:
123
abc
456
如果分割字符(串)正好是正则的一部分,则需要转义才能使用,这些字符有 | , + , * , ^ , $ , / , | , [ , ] , ( , ) , - , . , \等, 因它们是正则表达式中的一部分, 所以如果想用该字符本身, 这些字符需要进行转义才能表示它本身。
案例1:
//split分割函数
String str5 = "123*abc*456*";
//按照 * 分割字符串
String[] result5 = str5.split("*");
//123
for(String str:result5)
{
System.out.println(str);
}
结果:报错
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character ‘*‘ near index 0
*
^
//split分割函数
String str5 = "123*abc*456*";
//按照 * 分割字符串,使用转义符才能让程序认为*是一个分隔符,而不是正则表达式
String[] result5 = str5.split("\\*");
//123
for(String str:result5)
{
System.out.println(str);
}
结果:
123
abc
456
案例2:
//split分割函数
String str5 = "123|abc|456|";
//按照 | 分割字符串
String[] result5 = str5.split("|");
//123
for(String str:result5)
{
System.out.print(str+"; ");
}
结果:
1; 2; 3; |; a; b; c; |; 4; 5; 6; |;
//split分割函数
String str5 = "123|abc|456|";
//按照 * 分割字符串,加上转义符\\
String[] result5 = str5.split("\\|");
//123
for(String str:result5)
{
System.out.print(str+"; ");
}
结果:
123; abc; 456;