Java中的分割字符串 split(“.”)无效问题
作者:励志工程师
这篇文章主要介绍了Java中的分割字符串 split(“.”)无效问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
Java分割字符串 split(“.”)无效
之前做完善项目的时时候,需要将一个字符串用小数点分割开,调用的是split(“.”),但是总是分割失败,返回为null,返回的不是自己想要的字符串数组。
原方法;
public static void main(String[] args) { String a = "0.0"; String[] split = a.split("."); System.out.println(split.length); }
显示结果;
"C:\Program Files\Java\jdk1.8.0_333\bin\java.exe" ...
0
之后才发现这个问题的原因,发现是split里的正则表达式写错了,在正则表达式中,小数点指的是任意字符,因此不能直接用".“来匹配小数点,需要使用”\."来匹配小数点,因此要根据小数点分割字符串,需要下面这种写法。
public static void main(String[] args) { String a = "0.0"; String[] split = a.split("\\."); System.out.println(split.length); }
显示结果;
"C:\Program Files\Java\jdk1.8.0_333\bin\java.exe" ...
2
结论:Java分割字符串的时候要注意转义操作。
java用split()分割字符串注意事项
注意:
1.字符"|","*","+“都得加上转义字符,前面加上”\"。
2.而如果是"",那么就得写成"\\"。
3.如果一个字符串中有多个分隔符,可以用"|"作为连字符。
比如:String str = “Java string-split#test”,可以用Str.split(" |-|#")把每个字符串分开。这样就把字符串分成Java string、split、test3个子字符串。
但是,有时候我们分割字符串,需要根据几个字符串来分割
例如需要分割这个字符串:“ab(12)56”,要根据两个字符 “(” 和 “)”来分割,应该这样来分割
public static void main(String[] args) { String string = new String(); string = "ab(12)56"; String[] split1 = string.split("[(,)]"); for (String string2 : split1) { System.out.println(string2); } }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。