为什么java的字符串拆分(" \\ s")在数组中有一个空字符串?

时间:2018-05-05 18:00:39

标签: java string

给定句子"The brown fox jumped the fence jumped. The jumped fox? The fox. Jumped"按空格分割显示数组中的空字符串。我期待带有标点符号的单词或单词。这个空字符串来自哪个句子?

2 个答案:

答案 0 :(得分:6)

这是因为你的字符串包含连续的空白字符,例如

jumped.  The
       ^^

这两个空格之间有一个零长度的字符串,所以如果你在每个空白字符上拆分,你会得到它们之间的空字符串。

如果要将它们作为单个分隔符进行匹配,请使用量词,例如

"\\s+"

答案 1 :(得分:-1)

我只是在Eclipse上编写代码。它按预期工作。这是代码: -

public class TokenizeString {

    public static void main(String[] args) {
        String stringToTokenize = "The brown fox jumped the fence jumped. The jumped fox? The fox. Jumped";
        String[] tokenizedStrings = stringToTokenize.split("\\s");
        for(String tokenizedString : tokenizedStrings) {
            if ("".equalsIgnoreCase(tokenizedString)) {
                System.out.println(true);
            } else {
                System.out.println(false);
            }
        }
    }

}

这是输出: -

假 假 假 假 假 假 假 假 假 假 假 假 假