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查看您的代码,并计算出单行输入调用了多少次。你得到“一次”的答案吗?如果没有,请再次阅读代码!

于 2012-05-03T05:14:07.273 回答
1

您使用 nextToken() 只能获得一个令牌。但是还有更多的令牌。所以你需要迭代并接受它。但请确保它不会出现 ArrayIndexOutOfBounds,因为您只声明了 15 个整数的数组。请更改代码如下。

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 回答