字符串处理函数

  1 替换函数

  ① replace 即可以替换字符,也替换 字符串。

String str1 = "123&123&123&";

//使用@替换掉字符串里所有的&符
String result = str1.replace("&", "@");

//使用abc@ 替换掉 123&
String result2 = str1.replace("123&", "abc@");

 

② 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; 

 

原文地址:https://www.cnblogs.com/Latiny/p/8278027.html