2

我是一名高中 Java 程序员(对 c++ 有半经验),我的任务是读取 3 位数字并将其输出为单词。如果我可以单独输入每个数字,这个程序将是一件轻而易举的事,但我必须一次输入所有 3 个数字,并通过内置的微风摆动窗口输入。我可以将输入作为 int 数组输入吗?我必须将它作为一个字符串接收,然后按位置解析它到数组中的位置,如果是,我该怎么做?

4

4 回答 4

2

您只能接受该数字作为 int

然后

使用我们提取数字时使用的方法

暗示

number % 10 是最后一位
数字/10 从数字中删除最后一位数字

例如:

456%10 = 6
456/10 = 45

那么 45%10 = 5
45/10 = 4

那么 4%10 = 4
4/10 = 0

于 2012-11-08T12:49:35.097 回答
1

是的,从输入中读取一行作为字符串,然后使用input.split("\\s+"). 这将在任何空白字符处拆分并返回一个String[]. 然后你需要用 . 解析每个数组元素Integer.parseInt

另一方面,如果你真的需要三个int不被空格分隔的个位数,那么你可以跳过这split一步,直接使用int digit = input.charAt(i) - '0'.

于 2012-11-08T12:48:21.333 回答
0
  1. JTextField从使用中获取输入textfield.getText()
  2. 检查字符串是否仅包含 3 个字符并且是整数。
  3. 将字符串类型转换为整数并将其分解为hundred,tenones放置。
  4. 使用switch-caseif-else打印特定的单词。

例如,

int hundred = Integer.parseInt(textField.getText().substring(0,1));
int ten = Integer.parseInt(textField.getText().substring(1,2));
int ones = Integer.parseInt(textField.getText().substring(2,3));
switch(hundred){
    case 1: System.out.print("One hundred ");
    break;
    case 2: System.out.print("Two hundred ");
    break;
    //similarly for rest of the numbers
}

其余的逻辑将自己实现为家庭作业。

于 2012-11-08T13:02:09.920 回答
0

明确实施:

int array[] = new int[3];
String s = //the 3 digit number
for(int i = 0; i < s.length(); i++)
    array[i] = s.charAt(i) - '0';

但我什至会跳过中间整数数组而只使用字符。一个原因可能是数字与它们的英文表示不完全对应(如“十一”、“十二”)。带有字符的 switch 语句仍然很简单。

于 2012-11-08T13:02:18.843 回答