我是一名高中 Java 程序员(对 c++ 有半经验),我的任务是读取 3 位数字并将其输出为单词。如果我可以单独输入每个数字,这个程序将是一件轻而易举的事,但我必须一次输入所有 3 个数字,并通过内置的微风摆动窗口输入。我可以将输入作为 int 数组输入吗?我必须将它作为一个字符串接收,然后按位置解析它到数组中的位置,如果是,我该怎么做?
问问题
1186 次
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
JTextField
从使用中获取输入textfield.getText()
- 检查字符串是否仅包含 3 个字符并且是整数。
- 将字符串类型转换为整数并将其分解为
hundred
,ten
并ones
放置。 - 使用
switch-case
和if-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 回答