所以我一直在尝试整天做这个功课,我仍然无法弄清楚如何编写一个方法来读取一行数字并将它们保存到一个数组中。这是我尝试但不起作用的
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;
}
答案 0 :(得分:5)
因为这是家庭作业......这是一个(大)提示。
查看您的代码,并找出为单行输入调用parseInt
的次数。你有“一次”的答案吗?如果没有,请再次阅读代码!
答案 1 :(得分:1)
使用nextToken()只能获得一个toke。但是还有更多的令牌。所以你需要迭代并采取它。但请确保它不会出现ArrayIndexOutOfBounds,因为您只声明了15个整数的数组。请更改以下代码。
int index = 0;
while(str.hasMoreTokens()){
String d = str.nextToken();
int num = Integer.parseInt(d);
rArray[index] = num;
inde++;
}
答案 2 :(得分:0)
您可以知道在生成异常并构建阵列之前可以调用tokenizer的nextToken
方法的次数。
StringTokenizer str = new StringTokenizer(data);
int[] rArray = new int[str.countTokens()];
祝你好运!
答案 3 :(得分:0)
您可以使用String array
和Split()
方法readLine()
来实现它。