有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我试图在split()方法中使用多个符号拆分字符串,但它不起作用

我正在尝试拆分我的正则表达式,但它不会因为某种原因而拆分。这是我的密码

String str = "sdef@srdfsrd[es[edf@edfv";
String[] arrOfStr = str.split("\\@\\["); 
for (String a : arrOfStr) 
{
  System.out.println(a);
}

输出:

sdef@srdfsrd[es[edf@edfv

预期产出:

sdef
srdfsrd
es
edf
edfv

同样的问题:

String[] arrOfStr = str.split(",:");  //not splitting the word at all

共 (2) 个答案

  1. # 1 楼答案

    "\\@\\["匹配@[,这在字符串中是而不是。将正则表达式更改为"[@\\[]",这是一个character class,这意味着它将在@[上拆分

    见演示here:)

  2. # 2 楼答案

    "@|\\[代替\\@\\[

    请注意,在正则表达式模式中,|作为OR工作,即通过使用"@|\\[,您指示代码在@OR[上拆分给定字符串

    或者,可以使用[@\\[],其中[]指定character classes

    演示:

    public class Main {
        public static void main(String[] args) {
            String str = "sdef@srdfsrd[es[edf@edfv";
            String[] arrOfStr = str.split("@|\\[");
            for (String a : arrOfStr) {
                System.out.println(a);
            }
        }
    }
    

    输出:

    sdef
    srdfsrd
    es
    edf
    edfv