...你想的太复杂了
public static void main(String[] args)
{
//这里有定义成一个数组...这样才方便
String x[]={"zero","one","two", "three","four", "five","six","seven","eight","nine",
"ten","eleven","twelve","thirteen","fourteen","fifteen", "sixteen","seventeen","eighteen","nineteen",
"twenty","thirty","fourty","fifty", "sixty","seventy", "eighty","ninety"
} ;
Scanner in = new Scanner(System.in);
String s;
s = in.next();//这里用 next()方法
int j=0;
for(int i=0 ; i
if(s==x[0])
{
//这里判断 如果输入的字符串有和你数组里定义的字符串有相同的 就跳出
//需要注意的是数组的索引是从0开始的所以对应的数组要+1
j=i+1;
}
}
System.out.println("你输入的数字是"+j);
}
大概就这样..其实还有更简单的方法 就是使用switch
问题所在...
1. String 是一个object, 所以你不能用 == 去对比
把 s==x[i] 这些都换成s.equals(x[i])
2. a==‘n’ 这个是什么意思? 为什么要有在 a==‘\n’ 才输出? a 是第一个字符, ‘\n’是新一行... 他们怎么可能相等?
所以把,
if(a=='\n')
{
System.out.println(shu);
shu=0;
}
换成 System.out.println(shu); 就行了
===================================================
ps 1. 没有响应同学那个程序是错的
1. s.equals(x[i]) 而不是s==x[0]
2. j=i 不是j=i+1
3. 这方法只能用要20 因为thirty 是30不是21
ps 2. 你这程序还不够完善, 我要是打thirty two 呢?