Java 打印奇数行-行计数器增加两倍
我做了一个简单的程序,我想打印一个文件中所有的奇数行Java 打印奇数行-行计数器增加两倍,java,file,printing,Java,File,Printing,我做了一个简单的程序,我想打印一个文件中所有的奇数行 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
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为奇数时,你只会读到下一行 你想要的东西大致如下:
String line = fileRead.nextLine();
if(i == 1){
System.out.println(line);
}
在if条件下编写println语句。另外,我会打印所有行,而不仅仅是奇数行,当我删除if时,行数是正常的
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();
}