有 Java 编程相关的问题?

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

java如何拆分包含相同模式的字符串

我在java中拆分字符串时遇到问题。我有

String test="if x=7 else if x=6 else if x>5 else"
String leftPart ="if"
String rightPart="else"

大家知道如何从if-to-else中拆分,并添加数组列表或字符串数组x=7、x=6和x>;五,

事实上,我想这么做

ArrayList<String>ValueArray = new ArrayList<String>();

    ValueArray =[x=7,x=6,x>5];

共 (2) 个答案

  1. # 1 楼答案

    我不太明白你的问题。但是,无论你想做什么,都可以通过使用带规则表达式的split和零宽度正前瞻来完成。例如:

    String test="if x=7 else if x=6 else if x>5 else";
    
    String[] pieces = test.split("(?=else)");
    
    for(int i =0; i< pieces.length; i++){
        System.out.println(pieces[i]);
    }
    

    输出:

    if x=7 
    else if x=6 
    else if x>5 
    else
    

    语法:split((?=what______想要___分割_使用)”)

  2. # 2 楼答案

    下面是另一个使用String#replaceAllString#split的选项

    String s  = "if x=7 else if x=6 else if x>5 else";
    String[] parts = s.replaceAll("\\s*(?:if|else)\\s*", "").split("(?<=\\d)");
    System.out.println(Arrays.toString(parts));
    

    输出

    [x=7, x=6, x>5]