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

Java 如何拆分包含相同模式的字符串,java,android,regex,string,Java,Android,Regex,String,我在java中拆分字符串时遇到问题。我有 String test="if x=7 else if x=6 else if x>5 else" String leftPart ="if" String rightPart="else" 大家知道如何从if到else拆分,并添加数组列表或字符串数组x=7、x=6和x>5 事实上,我想这样做 ArrayList<String>ValueArray = new ArrayList<String>(); Value

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

String test="if x=7 else if x=6 else if x>5 else"
String leftPart ="if"
String rightPart="else"
大家知道如何从if到else拆分,并添加数组列表或字符串数组x=7、x=6和x>5

事实上,我想这样做

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

    ValueArray =[x=7,x=6,x>5];
ArrayListValueArray=new ArrayList();
ValueArray=[x=7,x=6,x>5];
试试这个

ArrayList<String> list_array = new ArrayList<String>();
String[] string_array = test.split("else");

for(int i = 0; i < string_array.length; i++){
     list_array.add((string_array[i].replace("if ","")).trim());
}
ArrayList list_array=new ArrayList();
String[]String_array=test.split(“else”);
for(int i=0;i
试试这个

ArrayList<String> list_array = new ArrayList<String>();
String[] string_array = test.split("else");

for(int i = 0; i < string_array.length; i++){
     list_array.add((string_array[i].replace("if ","")).trim());
}
ArrayList list_array=new ArrayList();
String[]String_array=test.split(“else”);
for(int i=0;i
我不太明白你的问题。但是,无论您试图做什么,都可以通过使用带规则表达式的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]);
}

语法:split((?=您希望使用的内容)

我不太明白你的问题。但是,无论您试图做什么,都可以通过使用带规则表达式的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]);
}

语法:split((?=您希望使用的内容)

您可以使用此
字符串#split

String[] tokens = test.split( "\\s*(?:if|else)\\s*" );

PS:您将在输出数组中得到必须丢弃的空字符串。

您可以使用此
String#split

String[] tokens = test.split( "\\s*(?:if|else)\\s*" );

PS:您将在输出数组中得到必须丢弃的空字符串。

这里是另一个使用
String#replaceAll
String#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));

下面是另一个使用
String#replaceAll
String#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));

@我很高兴这有帮助。快乐的编码。@PrAndroid很高兴这有帮助。愉快的编码。是的,这就是确切的答案,我添加了删除空白:split(\\sw*(?:IF | ELSE)\\sw*)。非常感谢。是的,这是确切的答案,我添加了删除空白:split(\\sw*(?:IF | ELSE)\\sw*)。多谢。