0

我做了一个简单的程序,我想打印文件中的所有奇数行。

    public static void main(String[] args) throws FileNotFoundException{
    File file = new File("text.txt");
    Scanner fileRead = new Scanner(file);
    int lineCount = 0; 
    int i = 0;

    while(fileRead.hasNextLine()){
      lineCount++;
      i = lineCount % 2;
      System.out.println("Line count -- >> " + lineCount);
      if(i == 1){
          System.out.println(fileRead.nextLine());
      }          
    }        
    fileRead.close();
 }
}

所以当我运行它时,输出是

行数 -- >> 1

奇怪的

行数 -- >> 2

行数 -- >> 3

甚至

行数 -- >> 4

行数 -- >> 5

奇怪的

等等....为什么我让 lineCount 增加了两次?提前致谢

4

3 回答 3

1
 public static void main(final String[] args)
        throws FileNotFoundException
{
    final File file = new File("C:\\textstr.txt");
    final Scanner fileRead = new Scanner(file);
    int lineCount = 0;
    int i = 0;

    while (fileRead.hasNextLine())
    {
        lineCount++;
        i = lineCount % 2;
        final String str = fileRead.nextLine();
        if (i == 1)
        {
            System.out.println("Line count -- >> " + lineCount);
            System.out.println(str);
        }
    }
    fileRead.close();
}
于 2013-08-16T10:13:26.033 回答
0

打印行数超出了检查奇数的条件,因此对于每个奇数行,您将获得两次输出。您也不会得到每条奇数行,因为当行数为奇数时,您只会阅读下一行

你想要一些类似的东西:

String line = fileRead.nextLine();
if(i == 1){
    System.out.println(line);
}  
于 2013-08-16T10:05:24.907 回答
0

在 if 条件中写入 println 语句。

于 2013-08-16T10:10:29.843 回答