我正在使用Scanner
打印.txt文件,我想用行号打印文件。这是我的代码。我的问题是行号没有递增。
import java.util.*;
import java.io.*;
public class List
{
public static void main(String[] args) throws IOException
{
int line =1;
File f = new File("src/List.txt");
Scanner sc = new Scanner(f);
while(sc.hasNext())
{
int num = 1;
System.out.print(num);
System.out.println(sc.nextLine());
num++;
}
}
}
输出:
1Bird
1Dog
1Cat
1Elephant
1Tiger
1Zebra
预期产出:
1 Bird
2 Dog
3 Cat
4 Elephant
5 Tiger
6 Zebra
答案 0 :(得分:4)
取int num = 1
并将其放在循环的一侧......
int num = 1;
while(sc.hasNext())
{
System.out.print(num);
System.out.print(" "); // Separate the line number from the text
System.out.println(sc.nextLine());
num++;
}
这样每次循环重启时都不会重置......
答案 1 :(得分:2)
您的错误似乎是在循环体中混合line
和num
,但我还建议您使用格式化输出,例如 -
while(sc.hasNextLine()) {
System.out.printf("%d %s%n", line++, sc.nextLine());
}
格式String
“%d%s%n”描述一个数字,然后是空格,然后是String
,然后是换行符。接下来,在line
上执行后增量。最后,从nextLine()
获取Scanner
。
答案 2 :(得分:0)
你应该删除
int num = 1;
因为它总是将num BACK设置为1,而它具有下一个。这就是行号不会增加的原因。
删除后,也删除
num++;
因为没有更多的num变量。将其替换为:
line++;
我希望这有帮助!