2

私は高校の Java プログラマー (C++ の経験が半端ない) で、3 桁の数字を読み取って単語として出力するという課題があります。各桁を別々に入力できれば、このプログラムは簡単ですが、3つすべてを一度に取り込み、組み込みのさわやかなスイングウィンドウから入力する必要があります。入力を int 配列として受け取ることはできますか? それを文字列として取り込んでから、配列内の位置ごとに解析する必要があります。

4

4 に答える 4

2

数値を int としてのみ受け入れることができます

それから

数字を抽出するときに使用する方法を使用する

ヒント

数値 % 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

はい、入力から 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
  1. JTextFieldusingから入力を取得するtextfield.getText()
  2. 文字列が 3 文字のみで、整数かどうかを確認します。
  3. hundred文字列を整数に型キャストし、に分解してten配置しonesます。
  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';

しかし、中間の整数配列をスキップして、文字だけを使用することさえあります。理由の 1 つは、数字が英語の表現 (「eleven」、「twelve」など) と正確に対応していないことです。Switch ステートメントは、文字を使用したシンプルなままです。

于 2012-11-08T13:02:18.843 に答える