Java String.split:使用\\ W作为非单词分隔符时遇到问题

use*_*975 2 java regex string

根据这里提供的建议, 我尝试使用\\ W作为java的string.split函数中非单词字符的分隔符.

String str = "id-INT, name-STRING,";
Run Code Online (Sandbox Code Playgroud)

这看起来像一个非常简单的字符串.我想从这个字符串中提取单词.我得到的数组的长度是5,而它应该是4.在INT之后的位置有一个空字符串.我不明白为什么那里的空间不被视为非单词

Mad*_*mer 6

,和空间都被看作是独立的实体,请尝试使用\\W+替代

    String str = "id-INT, name-STRING,";
    String[] parts = str.split("\\W+");
    System.out.println(parts.length);
    System.out.println(Arrays.toString(parts));
Run Code Online (Sandbox Code Playgroud)

哪个输出

4
[id, INT, name, STRING]
Run Code Online (Sandbox Code Playgroud)