gpt4 book ai didi

java - string.split ("\\S") 是如何工作的

转载 作者:搜寻专家 更新时间:2023-10-30 19:54:00 28 4
gpt4 key购买 nike

<分区>

我正在做 Ganesh 和 Sharma 的 oracle_certified_professional_java_se_7_programmer_exams_1z0-804_and_1z0-805 一书中的一道题。

一个问题是:

  1. Consider the following program and predict the output:

      class Test {

    public static void main(String args[]) {
    String test = "I am preparing for OCPJP";
    String[] tokens = test.split("\\S");
    System.out.println(tokens.length);
    }
    }

    a) 0

    b) 5

    c) 12

    d) 16

现在我明白\S 是一个正则表达式,意味着将非空格字符视为分隔符。但是我对正则表达式如何进行匹配以及它的匹配项是什么感到困惑拆分产生的实际代币。

我添加了代码来打印出 token ,如下所示

for (String str: tokens){
System.out.println("<" + str + ">");
}

我得到了以下输出

16

<>

< >

<>

< >

<>

<>

<>

<>

<>

<>

<>

<>

< >

<>

<>

< >

那么多空字符串标记。我只是不明白这一点。

我本以为,如果分隔符是上面文本中的非空格字符,那么所有字母字符都将用作分隔符,所以如果我们匹配,可能应该有 21 个标记也会导致空字符串的标记。我只是不明白 Java 的正则表达式引擎是如何解决这个问题的。是否有任何正则表达式专家可以为我阐明这段代码?

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com