gpt4 book ai didi

java - StringTokenizer 与 String.split?

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

有人刚刚问了一个关于 String.split() 的问题,解决方案是使用 StringTokenizer。 String split comma and parenthisis-JAVA为什么 String.split() 不在括号上拆分?

public static void main(String[] args) {
String a = "(id,created,employee(id,firstname," +
"employeeType(id), lastname),location)";
StringTokenizer tok = new StringTokenizer(a, "(), ");
System.out.println("StringTokenizer example");
while (tok.hasMoreElements()) {
String b = (String)tok.nextElement();
System.out.println(b);
}

System.out.println("Split example");
String[] array = a.split("(),");
for (String ii: array) {
System.out.println(ii);
}
}

输出:

StringTokenizer example
id
created
employee
id
firstname
employeeType
id
lastname
location
Split example
(id
created
employee(id
firstname
employeeType(id)
lastname)
location)

Scanner vs. StringTokenizer vs. String.Split 上有关于 String.split() 与 StringTokenizer 的讨论但它没有解释括号。这是设计使然吗?这里发生了什么?

最佳答案

如果您希望 split 在字符 '(', ')', ','' ',您需要传递与其中任何一个匹配的正则表达式。最简单的是使用字符类:

String[] array = a.split("[(), ]");

通常,正则表达式中的括号是分组运算符,如果您打算将它们用作文字,则必须对其进行转义。但是,在字符类分隔符内,括号字符不必转义。

关于java - StringTokenizer 与 String.split?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43123584/

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