使用String.split进行奇怪的操作与用户输入不同

Nig*_*der 2 java string split input

我无法理解这一点.

System.err.println(convertPdfToText(save).split("3\\.8").length);
Run Code Online (Sandbox Code Playgroud)

按预期打印出3的结果.

实际上,我希望用户能够获得相同的内容.因此,当我运行此代码时:

System.err.println(convertPdfToText(save).split(seperator).length);
Run Code Online (Sandbox Code Playgroud)

当用户在JInputField中输入"3 \\.8"时,我得到的数组长度为1.

到底发生了什么?

mel*_*ene 5

"\\"在Java程序中表示包含一个的字符串\.在您的情况下,用户必须输入3\.8以获取Java代码表示的字符串"3\\.8".

也就是说,你似乎由字符串字面量Java的语法之间的区别(它处理了混淆\"特别情况下)(其中每个字符代表其自身)从外部源输入的字符串.