我用Java实现几种不同的“扫描仪”,从扫描仪类如何删除空格简单地使用而在Java扫描文本
String.split("\ss+")
,但是当有几个空格连续像"the_quick____brown___fox"
他们所有这些都会标记某些空格(想象下划线是空格)。有什么建议么?
我用Java实现几种不同的“扫描仪”,从扫描仪类如何删除空格简单地使用而在Java扫描文本
String.split("\ss+")
,但是当有几个空格连续像"the_quick____brown___fox"
他们所有这些都会标记某些空格(想象下划线是空格)。有什么建议么?
我不确定你在说什么。例如,
String[] parts = "the quick brown fox".split("\\s+");
正确标记字符串在任何标记上没有前导或尾随空格,并且没有空的标记。如果输入字符串可能具有前导空格或尾随空格,则调用String.trim()
将删除空令牌的可能性。
编辑我从你的其他评论中猜测,你正在读输入一行,然后标记行。在标记之前,您可能需要每行有trim
。
使用java.util.Scanner。
我得到的空白令牌数量相当 - 我的测试输入约为14k - 使用Scanner和String.split一样。 – user276712
你不应该得到任何'空白令牌'。空白不是一个标记,它是标记之间的东西。 java.util.Scanner让你有机会定义你的标记是什么以及你的分隔符是什么,即你的空白是什么。不要浪费时间和你的时间,让它回到你的空白处。 – EJP
'“\ ss +”'不是有效的正则表达式,也不是有效的Java String;它根本不编译。 –