java中分隔符参数中带括号的stringtokenizer的含义

use*_*052 -1 java

我有一个这样的代码。

StringTokenizer st = new StringTokenizer(str, ":(=)");
Run Code Online (Sandbox Code Playgroud)

它是否基于 ':" 或 "=" 进行分隔。等号周围的括号有什么意义?

小智 5

该字符串中的每个字符都是要拆分的字符串的分隔符。

从 Javadoc

delim参数中的字符是分隔标记的分隔符。分隔符本身不会被视为标记。

String str = "my:sentence(to=parse)!";
StringTokenizer st = new StringTokenizer(str, ":(=)");
while(st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}
Run Code Online (Sandbox Code Playgroud)

输出

my 
sentence 
to 
parse 
!
Run Code Online (Sandbox Code Playgroud)