需要了解我们如何解析字符串并转换为化学式。
示例:1
InputString是" CCHHNaNaOO" 输出应为C2H2Na2O2
示例2: InputString是" CCHHNaNaOOCCC" 输出应为C2H2Na2O2C3
我知道如何处理单个字符,但是在执行Na [字符串中的2个字母]
时遇到问题任何想法或提醒都会有所帮助
谢谢!
答案 0 :(得分:5)
你的问题有两部分。首先,您希望根据第一个字符是否为大写字母来拆分单个元素。这可以通过String.split()
:
String[] elements = s.split("(?=[A-Z])");
其次,您需要总计数组中每个元素的常见并发条目的数量。
StringBuilder sb = new StringBuilder();
String token = null;
int counter = 1;
for (String element : elements) {
if (!element.equals(token)) {
if (token != null) {
sb.append(token);
if(counter > 1) sb.append(counter);
}
token = element;
counter = 1;
} else {
counter++;
}
}
// We've reached the end, add final element
sb.append(token);
if (counter > 1) sb.append(counter);
return sb.toString();