Java String.Split的行为不符合预期

Java String.Split的行为不符合预期,java,string,split,Java,String,Split,我有一根很大的绳子。可以在这里看到: 我想用正则表达式3.8拆分这个字符串 当我使用记事本搜索这个字符串时,我找到了3.8的两个实例。 因此,我希望返回的数组长度为3 System.err.println(convertPdfToText(save).split("3.8").length); 但是,使用convertPdfToText调用此字符串获取此字符串的长度为4 我一点也不明白这一点。有谁能告诉我发生了什么,因为这正在极大地改变我的程序的行为 提前感谢字符是正则表达式中的一个特殊字

我有一根很大的绳子。可以在这里看到:

我想用正则表达式3.8拆分这个字符串 当我使用记事本搜索这个字符串时,我找到了3.8的两个实例。 因此,我希望返回的数组长度为3

System.err.println(convertPdfToText(save).split("3.8").length);
但是,使用convertPdfToText调用此字符串获取此字符串的长度为4

我一点也不明白这一点。有谁能告诉我发生了什么,因为这正在极大地改变我的程序的行为


提前感谢字符是正则表达式中的一个特殊字符,字面意思是“任何字符”。所以你基本上是在寻找
3[anything]8
,快速的正则表达式搜索显示确实有3个匹配项。两个是您实际查找的有效“3.8”字符串。您的意外匹配位于此字符串的末尾:

3.4 Unit 3: Spanish speaking 46953 8
字符是正则表达式中的一个特殊字符,字面意思是“任何字符”。所以你基本上是在寻找
3[anything]8
,快速的正则表达式搜索显示确实有3个匹配项。两个是您实际查找的有效“3.8”字符串。您的意外匹配位于此字符串的末尾:

3.4 Unit 3: Spanish speaking 46953 8
3.8
解释为正则表达式意味着
38
。这是你想要的行为吗?不,不是。我的意思是你的正则表达式的数字3.8应该看起来像“3\\.8”下一个tipp,不要把代码写在一行中。你不能调试它;写入字符串str=convertPdfTotext(保存);字符串[]部分=str.split(“3.8”);System.err.println(“length=“+parts.length”);你能说出背后的大想法吗?您想分离什么:可能正则表达式是错误的方法
3.8
被解释为正则表达式的意思是
38
。这是你想要的行为吗?不,不是。我的意思是你的正则表达式的数字3.8应该看起来像“3\\.8”下一个tipp,不要把代码写在一行中。你不能调试它;写入字符串str=convertPdfTotext(保存);字符串[]部分=str.split(“3.8”);System.err.println(“length=“+parts.length”);你能说出背后的大想法吗?你想分离什么:也许正则表达式是错误的方法