gpt4 book ai didi

java - Java从输入流中逐行读取数据

转载 作者:行者123 更新时间:2023-12-01 14:38:14 25 4
gpt4 key购买 nike

我需要读取以下格式的数据:
2
4
7
6 4
2 5 10
9 8 12 2

数据需要来自默认输入流 System.in。我使用的是封装在 BufferedReader 中的 InputStreamReader,因此我能够逐行读取。

InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader in=new BufferedReader(isr);
String x=in.readLine();
int numcase=Integer.parseInt(x);
for(int i=1;i<=numcase;i++){
System.out.println("");
x=in.readLine();
int n=Integer.parseInt(x);
int[][]t=new int[n+1][n+1];
for(int j=1;j<=n;j++){
System.out.println();
x=in.readLine();
StringTokenizer st=new StringTokenizer(x);
for(int k=1;k<=1;k++){
x=st.nextToken();
int nume=Integer.parseInt(x);
t[j][k]=nume;
}
}

问题是,如果空白的 System.out.println 语句不存在,它会拒绝读取前两行之后的一行输入。问题是,我提交代码的地方会监视输出流,因此会通过输出错误的答案将我的输出评为不正确。

最佳答案

  • 好吧,首先,永远不要使用 StringTokenizer ,因为它已被弃用。
  • 其次,数组是零索引的。所以使用 for (i = 0, i < size; i++)不是i=1i <= size 。我猜你最后的编程语言是 Visual Basic。
    • 您的数组对于输入数据的大小来说太大。使用new int[n][n]具有上述零索引。
  • 一旦再次迭代 for 循环,二维数组就会超出范围。
  • 如果您要使用readLine ,使用 String.split(" ") 会让您的生活变得更好

如果您能详细说明输入格式和所需的输出,我可以帮助您更好地阅读它。

关于java - Java从输入流中逐行读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16269728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com