我想要做的是從文件中讀取(在這種情況下,文件包含超過100,000行)並將值存儲在數組中,然後打印出前10行。但是,當我運行程序時,我得到第一行,然後是9行「null」,這顯然不是我想要的!這是代碼和任何提示將不勝感激。爲什麼我會將「null」作爲輸出字符串? Java
import java.io.*;
import java.util.Scanner;
public class DawsonZachA5Q2{
public static void main(String[] args){
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter a size for the number of letters for words: ");
int size = keyboard.nextInt();//prompts user for input
String[] array = new String[27000];
try {
File file = new File("big-word-list.txt");
Scanner scanner = new Scanner(file);
// Start a line count and declare a string to hold our current line.
int linecount=0;
// Tells user what we're doing
System.out.println("Searching for words with " + size + " letters in file...");
int wordCount=0;
while (scanner.hasNext()){
int i = 0;
String word = scanner.next();
if(size == word.length()){
wordCount++;
array[i]=word;
i++;
//add word to array
// increase the count and find the place of the word
}
}
linecount++;
System.out.println(wordCount);
System.out.println(wordCount+" words were found that have "+size+ " letters.");//final output
for(int o = 0; o<10; o++){
System.out.println(array[o]);
}
scanner.close();
}// our catch just in case of error
catch (IOException e) {
System.out.println("Sorry! File not found!");
}
} // main
} // class
我會讓你自己想出這一個。就在'array [i] = word;'之前,添加這一行:'System.out.println(「關於在索引處設置數組」+ i);'。然後看看會發生什麼。 – ajb
啊,是的,我明白你在說什麼了,謝謝! – Zhdawson