如何在Android中显示化学公式

时间:2017-09-14 14:17:58

标签: java android parsing count sequence

需要了解我们如何解析字符串并转换为化学式。

示例:1

InputString是" CCHHNaNaOO" 输出应为C2H2Na2O2

示例2: InputString是" CCHHNaNaOOCCC" 输出应为C2H2Na2O2C3

我知道如何处理单个字符,但是在执行Na [字符串中的2个字母]

时遇到问题

任何想法或提醒都会有所帮助

谢谢!

1 个答案:

答案 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();