我有一个字符串 String placeStr="place1*place2*place3"
我想获取包含 place1、place2、place3 的数组,如下所示:
String[] places=placeStr.split("*");
System.out.println(places[0]);
但它显示错误 E/AndroidRuntime(32118): Caused by: java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 1: *
我认为原因是字符“*”。如果我将 * 更改为 -,则显示正常。 我该怎么办?
最佳答案
当您使用 Regexp 时,\*
表示最后定义的表达式的 0 或更多
个实例。例如。
s*
表示匹配任何具有 0
或更多“s”的内容。这将匹配 "ss"
、"sssss"
或 ""
。
当我们想要实际搜索*
,而不是将其用作运算符时,我们需要使用\
对它进行转义
特点。但是,单数 \
用于特殊字符(例如 \s
和 \t
),所以我们还需要转义 字符,与另一个 \
。
这导致:
\ (ignore the next slash)
\ (ignore the star)
* (would be 0 or many, but its been ignored so means the literal.)
换句话说
\\*
而在 Java 中,我们可以这样使用它:
String[] places=placeStr.split("\\*");
System.out.println(places[0]);
关于java - 在字符串java中用字符*分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20379760/