繁体   English   中英

字符串按空格分隔

[英]String split by spaces

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

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

而我做到了

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

当我打印令牌中的元素时,输出结果如下所示:

_ //(spaces here)
9
+
10

我不知道为什么那里仍然有空位……有人可以帮我吗?

@Andreas谢谢您的帮助。 现在已解决此问题。

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

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

您可以做的是trim() ,然后对其进行split()

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM