字符串由空格分隔

时间:2015-11-15 05:55:54

标签: java regex string split space

我知道这个问题被多次询问过,但我不知道为什么我的工作不起作用。 我有一个像这样的字符串:

String line = "_9________+_10__" // ("_" is a white space)

我做了

String[] token = line.split("\\s+");

当我在令牌中打印元素时,输出是这样的:

_ //(spaces here)
9
+
10

我无法弄清楚为什么那里还有空间......有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:0)

@Andreas感谢您的帮助。这个问题现在已经解决了。

我将引用安德烈斯的评论: 您最近更新的问题在开头有空格。 split()将默认消除任何尾随空值,但不会消除嵌入或前导空值。你的问题是错误的:令牌数组中的第一个值是空的,而不是空格列表。这是设计和记录的。你应该阅读javadoc:docs.oracle.com/javase/7/docs/api/java/lang/...它说“因此尾随空字符串不包括在结果数组中。”

解决此问题的两种方法:在调用split()之前修剪字符串,或忽略数组中的空值。

答案 1 :(得分:0)

您可以做的是trim(),然后是split()

Srting line = " 9    + 10 ".trim();

String[] tokens = line.split("\\s+");