这是我必须用于问题的代码。我应该在Eclipse中的命令行中查找单词,输入java Spell a并在控制台中以一个本地文本文件开头的所有单词outprinted。我的程序没有明显原因终止:
import java.util.*;
import java.io.*;
public class Spell {
public static void main (String[] args) throws Exception {
File file = new File("C:\\Users\\Dennis\\words.txt");
Scanner fileScanner = new Scanner(file);
while (fileScanner.hasNext()) {
String word = fileScanner.next();
if(word.startsWith(args[0])) {
System.out.println(word);
}
}
}
}
答案 0 :(得分:0)
如果您正在以java Spell garfield
运行此程序,那么args[0]
将在文件中包含加菲猫,如果任何单词与加菲尔德匹配,那么您的打印语句将被执行,否则不会。您必须提供运行ecclipse
中用于运行程序的时间参数,然后您就可以看到所需的实际输出。
右键点击Class
main method
run as->run configuration
tab (x)=Arguments
中的{{1}},然后选择您的参数,然后查看下面的屏幕截图
答案 1 :(得分:0)
在eclipse中,右键单击您的java文件 - >以 - >运行运行配置 - >选项卡参数,在程序参数中输入a。如果没有输入参数,你应该得到一个" ArrayIndexOutOfBoundsException"在
行if(word.startsWith(args[0])) {
我建议在线上设一个断点
String word = fileScanner.next();
然后调试。 这样您就可以验证程序扫描的单词,并检查arg [0]是否是您输入的内容。
我用words.txt运行你的程序,如
asdf bsdf csdf dsdf
和参数c
,它会正确打印出
csdf。