我有一个包含零个或多个以空格分隔的单词的字符串,需要将其拆分为单词数组。这就是我做的。但后处理步骤,我处理输入字符串不包含任何单词的情况,向我建议我应该使用除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;
}
答案 0 :(得分:4)
为什么不简单地修剪前导和尾随空格并在拆分之前检查该情况。此外,您可能只是使用预定义的空白字符类。
String[] split_arguments(String arguments) {
if(arguments == null) {
return null;
}
String trimmedArguments = arguments.trim();
if(trimmedArguments.length() == 0) {
return null;
}
return trimmedArguments.split("\\s+");
}
答案 1 :(得分:2)
您可以使用Apache Commons的StringUtils。然后,您可以使用它们提供的分割方法之一,或者在使用isNotEmpty()
或isNotBlank()
方法检查字符串是否为空之前。
答案 2 :(得分:0)
您可以使用apache commons中的StringUtils.IsBlank
来检查字符串,然后再进行拆分。无论哪种方式,您都必须进行检查,但在拆分之前进行检查可能更合乎逻辑。
答案 3 :(得分:0)
我建议使用Commons Lang的StrTokenizer。它很简单:
return StrTokenizer(arguments).getTokentArray();
http://commons.apache.org/lang/api-release/org/apache/commons/lang3/text/StrTokenizer.html