Java split(“[^0-9a-zA-Z]+;”在结果中显示空字符串

Java split(“[^0-9a-zA-Z]+;”在结果中显示空字符串,java,regex,split,Java,Regex,Split,我正在尝试将文本从文件拆分为单词 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

我正在尝试将文本从文件拆分为单词

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?

对于
String.split
,您传递的参数是与术语分隔符匹配的正则表达式。分离器本身被拆下

因为您的正则表达式匹配单词,所以您实际上删除了单词,并将空格保留为术语

例如:

敏捷的棕色狐狸

将按如下方式拆分

[The][ ][quick][ ][brown][ ][fox]
 Sep  0   Sep   1   Sep   2  Sep
生成由三个单空格字符串组成的数组

我猜你的一些单词与正则表达式不完全匹配,这就是为什么你的结果中也有一些单词

解决方案:或者以另一种方式进行(
myString.split('\\s')
似乎是一个好的开始),或者使用匹配器进行迭代,直到找不到任何东西为止


请参见

您能举一个您遇到的问题的例子吗?请提供输入、您得到的以及您期望得到的。我甚至不知道如何解析您的上一条评论…好的,看起来我们有输入。。。你能给我们举一个你预期产出的例子吗?我发现很难理解你的蹩脚英语,无意冒犯。