我有一个字符串x.*y
它应该被分割为 x
和y
。
那么,该怎么做呢?
x.*y => [x,y]
注意:我需要 x,y 为 2 个不同的字符串。
最佳答案
代码片段是:
String[] splitString = "x.*y".split("\\.\\*");
System.out.println(Arrays.toString(splitString));
此代码段的输出是:
[x, y]
String
的 split
方法采用正则表达式作为参数。由于 .
和 *
在正则表达式中具有特殊含义,因此我们需要使用反斜杠 \
对其进行转义。由于 \
在 Java 字符串文字中具有特殊含义,因此也必须使用 \
进行转义,每次都生成 \\
。
编辑:由于所有转义都使正则表达式阅读起来很困难,所以我实际上推荐这个变体:
String[] splitString = "x.*y".split(Pattern.quote(".*"));
结果是一样的。 quote
方法返回与参数字面匹配的正则表达式。在这种情况下,返回 \Q.*\E
,其中 \Q
和 \E
表示文字引用的开始和结束。
关于java - 如何在java中将字符串x.*y拆分为x和y?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59910538/