Java 读入两个小于100的正整数A和B,计算A+B的值并输出.

Java 读入两个小于100的正整数A和B,计算A+B的值并输出.
读入两个小于100的正整数A和B,计算A+B的值并输出.
需要注意的是:整数A和B的每一位数字由对应的英文单词给出.如整数34表示为three four.
import java.util.*;
public class Main {
public static void main(String[] args){
String a,b;
int m,k,j = 0,c = -1;
int i[] = new int [20];
int sum[] = new int [10];
Scanner reader = new Scanner(System.in);
do{
a = reader.nextLine();
c++;
k = 0;m = 0;
while(m = (a.length()-1)){
m = a.indexOf(' ',m);
b = a.substring(k,m++);
k = m;
if("one".equals(b)) {i[j]=1;j++;}
else if("two".equals(b)){ i[j]=2; j++;}
else if("three".equals(b)) {i[j]=3;j++;}
else if("four".equals(b)) {i[j]=4;j++;}
else if("five".equals(b)) {i[j]=5;j++;}
else if("six".equals(b)) {i[j]=6;j++;}
else if("seven".equals(b)) {i[j]=7;j++;}
else if("eight".equals(b)) {i[j]=8;j++;}
else if("nine".equals(b)) {i[j]=9;j++;}
else if("zero".equals(b)) {i[j]=0;j++;}
else{
if(j==1)
sum[c] += i[0];
else
sum[c] =sum[c]+i[0]*10+i[1];
j=0;
}
}
if(j==1)
sum[c] += i[j-1];
else
sum[c] =sum[c]+i[0]*10+i[1];
j = 0;
}while(sum[c]!= 0);

for(int p=0;p<=c-1;p++)
System.out.println(sum[p]);
}
}
出现错误,如图,求教~

读入两个小于100的正整数A和B,计算A+B的值并输出.
需要注意的是:整数A和B的每一位数字由对应的英文单词给出.如整数34表示为three four.
输入
测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔.当A和B同时为0时输入结束,此时的结果不要输出.
样例输入
one + two =
zero + zero =
样例输出
3
没有后悔药吃 1年前 已收到1个回答 举报

含羞草275163131 幼苗

共回答了22个问题采纳率:90.9% 举报

直接读int不好吗
int a,b;
a = reader.nextInt();
b = reader.nextInt();

1年前 追问

1

没有后悔药吃 举报

你看好题,数字是由英文给出的

举报 含羞草275163131

那按“ ” 分割,split(" ")
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.658 s. - webmaster@yulucn.com