将字符串拆分为零个或多个单词的正确方法
我有一个包含零个或多个空格分隔单词的字符串,需要将其拆分为单词数组。这就是我所做的。但是在后处理步骤中,我处理输入字符串不包含单词的情况,这表明我应该使用 String.split() 之外的其他方式。我应该吗?
String[] split_arguments(String arguments) {
String[] result = arguments.split("[\t ]+");
if (result.length == 1 && result[0].equals("")) {
result = new String[0];
}
return result;
}
I have a string with zero or more whitespace-separated words, that needs to be split into an array of words. This is what I did. But the post-processing step, where I handle the case that the input string contained no words, suggests to me that I should have used some other way than String.split(). Should I?
String[] split_arguments(String arguments) {
String[] result = arguments.split("[\t ]+");
if (result.length == 1 && result[0].equals("")) {
result = new String[0];
}
return result;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
为什么不简单地修剪前导和尾随空白并在分割之前检查这种情况。另外,您可以简单地使用预定义的空白字符类。
Why not simply trim the leading and trailing whitespace and check for that case prior to splitting. Also, you might simply use the predefined whitespace character class.
您可以使用 Apache 的 StringUtils公共资源。然后,您可以使用它们提供的其中一种拆分方法,或者在使用
isNotEmpty()
或isNotBlank()
方法检查字符串是否不为空之前。You could use the StringUtils from Apache Commons. You can then either use one of the split methods they provide or before make a check that the string is not empty using the
isNotEmpty()
orisNotBlank()
methods.您可以使用 apache commons 中的
StringUtils.IsBlank
在分割之前检查字符串。无论哪种方式,您都必须进行检查,但在拆分之前进行检查可能更合乎逻辑。You could use
StringUtils.IsBlank
from apache commons to check the string before splitting. Either way, you have to do a check, but doing a check before splitting might be more logical.我建议使用 Commons Lang 的 StrTokenizer。它很简单:
http:// commons.apache.org/lang/api-release/org/apache/commons/lang3/text/StrTokenizer.html
I suggest using the StrTokenizer from Commons Lang. It's as simple as:
http://commons.apache.org/lang/api-release/org/apache/commons/lang3/text/StrTokenizer.html