用Java读取输入 - 帮助

时间:2010-06-03 12:17:05

标签: java input

我在阅读输入时遇到问题,任何人都可以帮助我。

输入的每一行都有整数:X e Y用空格分隔。

12 1    
12 3  
23 4  
9 3 

我在java中使用这段代码但是没有用,只读第一行可以帮助我吗?

    String []f; 
    String line;
    Scanner in=new Scanner(System.in);

    while((line=in.nextLine())!=null){
        f=line.split(" ");

        int X,Y;
        X=Integer.parseInt(f[0]);
        Y=Integer.parseInt(f[1]);

        if(X<=40 && Y<=40)
          metohod(X,Y); 


        line=in.nextLine();

    }
}

4 个答案:

答案 0 :(得分:1)

你正在两次调用nextLine,一次是另一个,linha = xxx; 什么是林哈呢?试试这个

BufferedReader reader = new BufferedReader(...);
while((line = reader.readLine())!=null) {
  String[] f = line.split(" ");
  int X,Y;
  X=Integer.parseInt(f[0]);
  Y=Integer.parseInt(f[1]);
}

答案 1 :(得分:0)

line=in.nextLine();

您正在阅读下一行并且不做任何事情。如果你删除它应该工作。

答案 2 :(得分:0)

你过多地调用一个line=in.nextLine(),但为什么不使用in.nextInt()?以下应该按预期工作:

Scanner in = new Scanner(System.in);

while(in.hasNextLine()) {
    int x = in.nextInt();
    int y = in.nextInt();

    if(x <= 40 && y <= 40)
        method(x, y); 
}

(代码经过测试,读取的内容不仅仅是第一行。您之前的问题可能是输入文件的新行格式。)

查看scanner API docs


要调试它,您可以使用Scanner(File file)构造函数。

答案 3 :(得分:0)

由于您使用的是Scanner,为什么不使用nextInt()代替nextLine()?这样你可以两次调用nextInt()并获得每行的两个数字。

您对其进行编码的方式看起来好像是在尝试使用BufferedReader而不是Scanner