将字符串拆分为零个或多个单词的正确方法

时间:2011-10-21 07:38:27

标签: java string split

我有一个包含零个或多个以空格分隔的单词的字符串,需要将其拆分为单词数组。这就是我做的。但后处理步骤,我处理输入字符串不包含任何单词的情况,向我建议我应该使用除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;
}

4 个答案:

答案 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