java - 在字符串java中用字符*分割

标签 java split

我有一个字符串 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/

相关文章:

java - 如何通过整数键 Java 对数组的 HashMap 进行排序

java - Intellij Idea GUI设计器: move and set appropriate component position by mouse

Java启动while循环而不暂停当前线程

ruby - 使用正则表达式组拆分字符串

javascript - 在 IE8 中使用 Javascript 将字符串拆分为数组

c++ - Qt:像Eclipse一样拖放Widget实现任意布局(拆分)

java - 动态规划打破一个字符串

java - 什么可以用来限制 java 卡片布局中面板之间的导航?

javascript - String split 返回一个元素比预期多的数组(空元素)

c - 如何分割和保存