java - 如何在java中将字符串x.*y拆分为x和y?

标签 java

我有一个字符串x.*y它应该被分割为 xy

那么,该怎么做呢?

x.*y => [x,y]

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

最佳答案

代码片段是:

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

此代码段的输出是:

[x, y]

Stringsplit 方法采用正则表达式作为参数。由于 .* 在正则表达式中具有特殊含义,因此我们需要使用反斜杠 \ 对其进行转义。由于 \ 在 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/

相关文章:

java - 有没有比 String.split() 更有效的方法将字符串分解为单词?

java - GCC 和 JVM 自动并行批处理

java - Android:闹钟应用程序的结构

java - Libgdx - 黑屏之谜

Java,将Class的实例转换为HashMap

java - IntelliJ 理念 : Deploy a simple Java servlet (no JSP) to Tomcat 7

java - 通过长按 ListView 项目,Android onCreateContextMenu 致命异常

javascript - 如何在 spring 中使用 ajax jQuery

java - 如何部分更新spring缓存(仅一个字段)?(当对象发生变化时)

java - GSON 和 InstanceCreator 问题