2010-02-21 87 views
0

我用Java实现几种不同的“扫描仪”,从扫描仪类如何删除空格简单地使用而在Java扫描文本

String.split("\ss+") 

,但是当有几个空格连续像"the_quick____brown___fox"他们所有这些都会标记某些空格(想象下划线是空格)。有什么建议么?

+0

'“\ ss +”'不是有效的正则表达式,也不是有效的Java String;它根本不编译。 –

回答

1

我不确定你在说什么。例如,

String[] parts = "the quick brown fox".split("\\s+"); 

正确标记字符串在任何标记上没有前导或尾随空格,并且没有空的标记。如果输入字符串可能具有前导空格或尾随空格,则调用String.trim()将删除空令牌的可能性。

编辑我从你的其他评论中猜测,你正在读输入一行,然后标记行。在标记之前,您可能需要每行有trim

0

使用java.util.Scanner。

+0

我得到的空白令牌数量相当 - 我的测试输入约为14k - 使用Scanner和String.split一样。 – user276712

+0

你不应该得到任何'空白令牌'。空白不是一个标记,它是标记之间的东西。 java.util.Scanner让你有机会定义你的标记是什么以及你的分隔符是什么,即你的空白是什么。不要浪费时间和你的时间,让它回到你的空白处。 – EJP