我正在尝试将文本从文件拆分为单词
split("[^0-9a-zA-Z]+")
但结果中有空字符串。我该如何解决这个问题?
长度|数组中的数字|词|计数| %
2 [ 1] to 9 5.56 %
0 [ 2] 6 3.70 %
5 [ 3] there 6 3.70 %
6 [ 4] result 3 1.85 %
4 [ 5] text 3 1.85 %
3 [ 6] but 3 1.85 %
输出为:
I'm trying to split text from file to words
split("[^0-9a-zA-Z]+")
but there are result empty strings too. Is there any solutions to solve this problem?
粘贴3次
最佳答案
对于String.split
,您传递的参数是与术语的分隔符匹配的正则表达式。分隔符本身被移除。
由于您的正则表达式正在匹配单词,因此您实际上是在删除单词并将空格保留为术语。
例如:
敏捷的棕色狐狸
将拆分如下
[The][ ][quick][ ][brown][ ][fox]
Sep 0 Sep 1 Sep 2 Sep
生成一个由三个单空格字符串组成的数组。
我猜您的某些单词与正则表达式不完全匹配,这就是为什么您也会在结果中得到其中一些单词。
解决方案:要么以相反的方式执行(myString.split('\\s')
似乎是一个好的开始),或者使用匹配器并迭代,直到找不到任何内容.
参见http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#split%28java.lang.String%29
关于java - split ("[^0-9a-zA-Z]+")在结果中显示空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13973622/