gpt4 book ai didi

java - 在 Java 中拆分 * 上的字符串?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:33:13 24 4
gpt4 key购买 nike

我想在 * 上使用 split 方法在 Java 中拆分 String。这是代码:

String str = "abc*def";
String temp[] = str.split("*");
System.out.println(temp[0]);

但是这个程序给我以下错误:

Exception in thread "main" java.util.regex.PatternSyntaxException: 
Dangling meta character '*' near index 0 *

我稍微调整了代码,使用 '\\*' 作为分隔符,效果很好。谁能解释这种行为(或提出替代解决方案)?

我不想使用 StringTokenizer

最佳答案

split()方法实际上接受一个正则表达式。 * 字符在正则表达式中具有特殊含义,不能单独出现。为了告诉正则表达式使用实际的 * 字符,您需要使用 \ 字符对其进行转义。

因此,您的代码变为:

String str = "abc*def";
String temp[] = str.split("\\*");
System.out.println(temp[0]); // Prints "abc"

注意 \\:对于 Java,您也需要转义斜杠。

如果以后想避免这个问题,请read up on regular expressions , 这样您就可以很好地了解可以使用的表达式类型以及需要转义的字符。

关于java - 在 Java 中拆分 * 上的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7129858/

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