java split不适用于正则表达式“DOT”(“DOT”,因为stackoverflow不接受dots)

java split不适用于正则表达式“DOT”(“DOT”,因为stackoverflow不接受dots),java,split,Java,Split,我想用正则表达式拆分字符串,但结果很奇怪 字符串位置=test.image.png; String[]split=position.split。; 系统输出打印位置; System.out.printlnspilt.length; forString元素:拆分System.out.PrintlElement; 为什么输出是: test.image.png 0 上面的代码将起作用。为什么?因为您需要用反斜杠转义Java正则表达式中的元字符。A.句号/句号就是这样一个字符。不带转义符使用它,

我想用正则表达式拆分字符串,但结果很奇怪

字符串位置=test.image.png; String[]split=position.split。; 系统输出打印位置; System.out.printlnspilt.length; forString元素:拆分System.out.PrintlElement; 为什么输出是:

test.image.png
0


上面的代码将起作用。为什么?因为您需要用反斜杠转义Java正则表达式中的元字符。A.句号/句号就是这样一个字符。不带转义符使用它,将匹配任何字符


请务必查看提供的链接,所有内容都在其中并且易于理解。

这里什么是test.image.png?和被分开。你需要逃离类似的位置。分开\\。这能回答你的问题吗?这回答了你的问题吗?好吧,你必须避开正则表达式的点,避开你用来避开它的反斜杠。点在Java Strings中不是特殊字符。据我所知,有几个元字符需要转义。有一点是其中之一……是的,但我的观点是,你的答案让人觉得你总是应该转义Java字符串中的点,即使第一个反斜杠是针对正则表达式的,第二个反斜杠是转义第一个。我说的第一个反斜杠,是指离圆点更近的那个。是的,你说得对。如果你知道的话,它看起来很简单。我会根据要求编辑答案。人们常常忘记小事情有多重要,比如提供一个彻底的答案。我需要记住这一点,所以谢谢你。
String position = "test.image.png";
String[] split = position.split("\\.");

System.out.println(position);
System.out.println(split.length);
for(String element : split) System.out.println(element);