首页 > 解决方案 > java - 如何在java中将字符串x.*y拆分为x和y?

问题描述

我有一个字符串x.*y,它应该被拆分为xand y

那么,该怎么做呢?

x.*y => [x,y]

注意:我需要将 x,y 分成 2 个不同的字符串。

标签: java

解决方案


代码片段是:

String[] splitString = "x.*y".split("\\.\\*");
System.out.println(Arrays.toString(splitString));

此片段的输出是:

[x, y]

split方法String将正则表达式作为参数。由于.*在正则表达式中有特殊含义,我们需要用反斜杠转义每个,\. 并且由于\在 Java 字符串文字中具有特殊含义,因此每次都必须使用\, make 对其进行转义。\\

编辑:由于所有的转义使正则表达式读起来很痛苦,我实际上推荐这个变体:

String[] splitString = "x.*y".split(Pattern.quote(".*"));

结果是一样的。该quote方法返回一个与参数字面匹配的正则表达式。在这种情况下\Q.*\E返回,其中\Q\E表示文字引用的开始和结束。


推荐阅读