0
点赞
收藏
分享

微信扫一扫

Java使用split分割无效,获取不到预期效果看过来


📣文章目录

  • ​​问题:​​
  • ​​情景复现:​​
  • ​​解决方式​​
  • ​​转义​​

问题:

通过​​String​​​字符串中​​split​​方法分割字符串得到数组信息获取不到的问题。

情景复现:

代码比较简单写个main方法运行后就可以看到效果。

public static void main(String[] args) {
String name="赵云.韩信.李白.诸葛亮";
String[] split = name.split(".");
System.out.println("分割后数据量:"+split.length);
}

输出结果:

Java使用split分割无效,获取不到预期效果看过来_正则表达式

解决方式

      查看该方法的源码可以发现,方法参数是正则表达式,匹配符合此字符串进行拆分成数组,并且源码也说明不能以单个字符传递以下​​".$|()[{^?*+\\"​​内容

Java使用split分割无效,获取不到预期效果看过来_字符串_02


翻译:

如果正则表达式是一个

   (1)单字符字符串,且该字符不是正则表达式的元字符之一​​".$|()[{^?*+\\"​​​    (2)双字符字符串,第一个字符是反斜杠,第二个不是​​ascii数字​​或​​ascii字母​​。

只要这2个条件不满足那么就会走正则模式。

     那就意味着我今天使用的是​​".$|()[{^?*+\\"​​​其中的​​一个单字符去进行匹配​​也没法得到我需要预期的效果。

我们简单的验证下使用​​$​

测试效果:

Java使用split分割无效,获取不到预期效果看过来_java_03

运行效果:

Java使用split分割无效,获取不到预期效果看过来_字符串_04

​正则字符​

Java使用split分割无效,获取不到预期效果看过来_jvm_05

转义

答案已经在表格里面了要使用正则的字符需要​​转义​

//代码中2个反斜杠等于一个反斜杠
"\\"

Java使用split分割无效,获取不到预期效果看过来_字符串_06


回到正题那么​​"."​​该怎么获取呢?

双反斜杠就ok

Java使用split分割无效,获取不到预期效果看过来_正则表达式_07

Java使用split分割无效,获取不到预期效果看过来_字符串_08


举报

相关推荐

0 条评论