题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1228
代码:
import java.util.Scanner;
public class Main {
static String num[] = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
int A = 0, B = 0;
while (sc.hasNext()) {
String str = sc.next();
if ("+".equals(str)) {
break;
} else {
A = A * 10 + strToi(str);
}
}
while (sc.hasNext()) {
String str = sc.next();
if ("=".equals(str)) {
break;
} else {
B = B * 10 + strToi(str);
}
}
if (A == 0 && B == 0)
break;
System.out.println(A + B);
}
}
public static int strToi(String str) {
for (int i = 0; i < num.length; i++) {
if (str.equals(num[i])) {
return i;
}
}
return -1;
}
}
注意:sc.next() java回去读取一个输入,若后面还有一个sc.next() java又回去读取一个输入。所以刚开始写成
while(!"".equals(sc.next())&&!"+".equals(sc.next)) 来判断某一个输入时不行的,与 c++ 中 while (cin >> str && str != "+")
不同