[英]How to print txt file with file numbers using I/O?
我正在使用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
取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++;
}
這樣就不會在每次循環重啟時都將其重置...
您的錯誤似乎在循環主體中混合了line
和num
,但我也建議您使用格式化的輸出,例如-
while(sc.hasNextLine()) {
System.out.printf("%d %s%n", line++, sc.nextLine());
}
String
“%d%s%n”的格式表示數字,然后是空格,然后是String
,然后是換行符。 接下來,執行后增量line
。 最后,從Scanner
獲取nextLine()
。
你應該刪除
int num = 1;
因為這將在hasNext時始終將num BACK設置為1。 這就是為什么行號不會增加的原因。
刪除后,也刪除
num++;
因為沒有更多的num變量。 替換為:
line++;
我希望這有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.