Given a string
abc=1&b=2&fa=_
I need to split it to get an array of tokens:
["abc", "=", "1", "&", "b", "=", "2", "&", "fa", "=" , "_"]
My code:
public String[] getTokens(String input) {
List<String> list = new ArrayList<>();
String[] splitted = input.split("&");
for (int k = 0, splittedLength = splitted.length; k < splittedLength; k++) {
String part = splitted[k];
String[] kv = part.split("=");
for (int i = 0, kvLength = kv.length; i < kvLength; i++) {
String elem = kv[i];
list.add(elem);
if (i < kvLength - 1) {
list.add("=");
}
}
if (k < splittedLength - 1){
list.add("&");
}
}
return list.toArray(new String[list.size()]);
}
I also need to consider cases when my key could not have a value (a=), and in this case I should set a default value to my key - an empty string (a=""
).
How can I do that?