У меня есть следующая строка:
A:B:1111;domain:80;a;b
A
не является обязательным, так B:1111;domain:80;a;b
также является действительным входом.
:80
не является обязательным, а так B:1111;domain;a;b
или :1111;domain;a;b
также действительны вход
То, что я хочу, чтобы в конечном итоге с String[]
, который имеет:Что такое хороший способ разбить строки здесь?
s[0] = "A";
s[1] = "B";
s[2] = "1111";
s[3] = "domain:80"
s[4] = "a"
s[5] = "b"
Я сделал это следующим образом:
List<String> tokens = new ArrayList<String>();
String[] values = s.split(";");
String[] actions = values[0].split(":");
for(String a:actions){
tokens.add(a);
}
//Start from 1 to skip A:B:1111
for(int i = 1; i < values.length; i++){
tokens.add(values[i]);
}
String[] finalResult = tokens.toArray();
Мне было интересно, есть ли лучший способ сделать это? Как еще я могу сделать это более эффективно?
Возможно, вы пытались с: ДЕЛЕНИЕ («[;:]») Это регулярное выражение раскола для полукокса, который является " ;» или ':' – rascio
За доменом всегда будет следовать '80'? – codaddict
@codaddict: Нет, это необязательно. – Jim