在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> 5.
实际上,我想这样做
ArrayList<String>ValueArray = new ArrayList<String>();
ValueArray =[x=7,x=6,x>5];
答案 0 :(得分:3)
试试这个..
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());
}
答案 1 :(得分:1)
您可以使用此String#split
:
String[] tokens = test.split( "\\s*(?:if|else)\\s*" );
PS:您将在输出数组中获得空字符串,您必须将其丢弃。
答案 2 :(得分:1)
以下是使用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));
输出
[x=7, x=6, x>5]
答案 3 :(得分:0)
不确定我理解你的问题。但无论你想做什么,都可以通过使用具有常规表达式和零宽度正向前瞻的分割来实现。例如:
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_you_want_to_split_using)”);