So I have, for example, a string such as this C3H20IO
What I wanna do is split this string so I get the following:
Array1 = {C,H,I,O}
Ar
An approach without REGEX and data stored using ArrayList:
String s = "C3H20IO";
char Chem = '-';
String val = "";
boolean isFisrt = true;
List chemList = new ArrayList();
List weightList = new ArrayList();
for (char c : s.toCharArray()) {
if (Character.isLetter(c)) {
if (!isFisrt) {
chemList.add(Chem);
weightList.add(Integer.valueOf(val.equals("") ? "1" : val));
val = "";
}
Chem = c;
} else if (Character.isDigit(c)) {
val += c;
}
isFisrt = false;
}
chemList.add(Chem);
weightList.add(Integer.valueOf(val.equals("") ? "1" : val));
System.out.println(chemList);
System.out.println(weightList);
OUTPUT:
[C, H, I, O]
[3, 20, 1, 1]