思路,先判断当前字符是不是数字,不是数字的话先记录当前字符,然后向后查找直到下一个不是数字的字符出现。
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
double[] A = {12.01,1.008,16.00,14.01};
int n = scan.nextInt();
while(n--!=0){
String s = scan.next();
int i = 0;
double ans = 0;
while(i<s.length()){
char c = s.charAt(i);
i++;
if(!(c>='0'&&c<='9')){
String str = "";
while(i<s.length()&&s.charAt(i)>='0'&&s.charAt(i)<='9'){
str+=s.charAt(i);
i++;
}
if(str.equals(""))
str = "1";
int num = Integer.valueOf(str);
if(c=='C'){
ans += A[0]*num;
}else if(c=='H'){
ans += A[1]*num;
}else if(c=='O'){
ans += A[2]*num;
}else{
ans += A[3]*num;
}
}
}
System.out.printf("%.3f\n",ans);
}
}
}