gpt4 book ai didi

java - StringTokenizer 在错误的分隔符上中断字符串

转载 作者:行者123 更新时间:2023-12-01 07:24:01 25 4
gpt4 key购买 nike

我正在使用java中的StringTokenizer来标记字符串,如下所示是我的代码

import java.util.StringTokenizer;

public class Test {
public static void main(String[] args) {
String str = "key1@@@@@val1#####key2@@@@@val2#####key3@@@@@val3#####key4@@@@@val4###val4###val4#####key5@@@@@val5";

StringTokenizer st = new StringTokenizer(str,"#####");
while(st.hasMoreTokens()){
System.out.println(st.nextElement());
}
}

}

输出为

key1@@@@@val1

key2@@@@@val2

key3@@@@@val3

key4@@@@@val4

val4

val4

key5@@@@@val5

实际上分隔符是“#####”,所以为什么它在“###”处中断

预期输出

key1@@@@@val1

key2@@@@@val2

key3@@@@@val3

key4@@@@@val4###val4###val4

key5@@@@@val5

我知道我可以使用 ### 之外的另一个分隔符来做到这一点,但我想知道这背后的确切原因。

最佳答案

StringTokenizer 根据提供的 delim 参数中的每个字符进行拆分。

在您的例子中,您生成一个仅根据 '#' 进行拆分的 StringTokenizer

来自StringTokenizer(String,String)的java文档

.... The characters in the delim argument are the delimiters for separating tokens. Delimiter characters themselves will not be treated as tokens....

关于java - StringTokenizer 在错误的分隔符上中断字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28959467/

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