0

だから私は一日中この宿題をやろうとしてきましたが、数字の行を読み込んで配列に保存する方法を書く方法をまだ理解できません。これは私が試したものですが、うまくいきません

public static int [] readData()

    throws java.io.IOException
    {

    int [] rArray = new int[15];

    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);

    String data = br.readLine();
    StringTokenizer str = new StringTokenizer(data);

    String d = str.nextToken();
    int num = Integer.parseInt(d);

    for(int i = 0; i < num; i++){
    rArray[i] = num;
    }


    return rArray;

}
4

4 に答える 4

5

これは宿題なので...ここに(大きな)ヒントがあります。

parseIntコードを見て、1 行の入力に対して何回呼び出されるかを調べます。「一度」という答えが得られますか?そうでない場合は、コードをもう一度読んでください。

于 2012-05-03T05:14:07.273 に答える
1

nextToken() を使用してトークンを 1 つだけ取得しています。しかし、より多くのトークンがあります。したがって、反復してそれを取る必要があります。ただし、15 個の整数の配列しか宣言していないため、ArrayIndexOutOfBounds にならないようにしてください。以下のようにコードを変更してください。

int index = 0;
while(str.hasMoreTokens()){
String d = str.nextToken();
    int num = Integer.parseInt(d);
    rArray[index] = num;
    inde++;
}
于 2012-05-03T05:15:15.460 に答える
0

String arrayあなたはそれを達成することがSplit()できreadLine()ます

于 2012-06-20T12:26:50.683 に答える
0

nextToken例外を生成して配列を構築する前に、トークナイザーのメソッドを呼び出すことができる回数を知ることができます。

StringTokenizer str = new StringTokenizer(data);
int[] rArray = new int[str.countTokens()];

幸運を!

于 2012-05-03T05:17:23.683 に答える