有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java非单词字符分隔符“\W”将“逗号+空格”计算为一个字符

给定一个与正则表达式[A-Za-z !,?._'@]+匹配的字符串,我想将该字符串拆分为标记。标记是一个或多个连续的英文字母。然后,我想打印令牌的数量。这是我的代码:

public class mySolution {

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    String s = scan.nextLine();
    String [] parts = new String[1159];
    parts = s.split("\\W");
    System.out.println(parts.length);
    for(int i = 0; i< parts.length; i++) {
        System.out.println(parts[i]);
    }
    scan.close();
}
}

这是我尝试的输入:

He is a very very good boy, isn't he?

这是我收到的输出:

11
He
is
a
very
very
good
boy
isn
t
he

正如你所看到的,一切都很好,但是代币的数量是11,而它应该是10!我相信非单词字符分隔符"\W"将“逗号+空格”作为一个字符计数!我说得对吗


共 (0) 个答案