字符串处理函数

 

  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; 

 

posted @   Latiny  阅读(233)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示