私は高校の Java プログラマー (C++ の経験が半端ない) で、3 桁の数字を読み取って単語として出力するという課題があります。各桁を別々に入力できれば、このプログラムは簡単ですが、3つすべてを一度に取り込み、組み込みのさわやかなスイングウィンドウから入力する必要があります。入力を int 配列として受け取ることはできますか? それを文字列として取り込んでから、配列内の位置ごとに解析する必要があります。
質問する
1186 次
4 に答える
2
数値を int としてのみ受け入れることができます
それから
数字を抽出するときに使用する方法を使用する
ヒント
数値 % 10 は数値の最後の桁です
/10 は数値から最後の桁を削除します
例えば:
456%10 = 6
456/10 = 4545%10 = 5
45/10 = 4次に 4%10 = 4
4/10 = 0
于 2012-11-08T12:49:35.097 に答える
1
はい、入力から 1 行を文字列として読み取り、次に を使用しますinput.split("\\s+")
。これは任意の空白文字で分割され、String[]
. 次に、各配列要素を で解析する必要がありますInteger.parseInt
。
一方、int
空白で区切られていない 3 つの 1 桁の sが本当に必要な場合は、このsplit
手順をスキップしてint digit = input.charAt(i) - '0'
.
于 2012-11-08T12:48:21.333 に答える
0
JTextField
usingから入力を取得する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';
しかし、中間の整数配列をスキップして、文字だけを使用することさえあります。理由の 1 つは、数字が英語の表現 (「eleven」、「twelve」など) と正確に対応していないことです。Switch ステートメントは、文字を使用したシンプルなままです。
于 2012-11-08T13:02:18.843 に答える