项目编译但不在编译器中显示信息

时间:2015-01-08 04:23:39

标签: java oop arraylist

嘿我正在制作一个程序,它从文本文档中取出单词+定义,对它们进行加扰,然后对它们进行测验。这些单词的结构为(单词:定义)。
我完成了项目的代码,但由于某种原因,编译后控制台保持空白。
代码由三个类组成,我将在下面显示:

第1类: -

public class VocabularyWord {
    private String word, definition;

public VocabularyWord(String w, String d){
    word=w;
    definition=d;
}
public String getDefinition(){
    return definition;
}
public String getWord(){
    return word;
}
public String toString(){
    return word+" "+definition;
}
}

第2课: -

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class VocabularyTest {
private ArrayList<VocabularyWord>words;
private int c;

public VocabularyTest() throws FileNotFoundException{
    words=new ArrayList<VocabularyWord>();
    ArrayList<String> str=new ArrayList<String>();
    File inputFile = new File("Vocabulary.txt");
    Scanner input = new Scanner(inputFile);
    while(input.hasNextLine()){
        str.add(input.nextLine());
        processStrings(str);
        for(int i = 0; i<100; i++)
            swapWords();
}
}
private void processStrings(ArrayList<String>lines){
    int pos=0;
    for(int i=lines.size()-1; i>=0; i--){
        pos=lines.get(i).indexOf(":");
        String s=lines.get(i).substring(0, pos);
        String ss=lines.get(i).substring(pos+1, lines.get(i).length());
        VocabularyWord p=new VocabularyWord(s,ss);
        words.add(p);
        c++;
    }
}
private void swapWords(){
    int x=(int) (Math.random()*words.size());
    int xx=(int)(Math.random()*words.size());
    while(x==xx)
        xx=(int)(Math.random()*words.size());
    Collections.swap(words, xx, x);
    }
public void quiz(){
    System.out.println("hi");
    int n=0;
    Scanner kb=new Scanner(System.in);
    for(int i=words.size()-1; i>=0; i--){
        System.out.println(words.get(i).getDefinition());
            if(kb.nextLine().equals(words.get(i).getWord())){
                System.out.println("Nice Job!");
                n++;
            }
            else
                System.out.println(words.get(i).getWord());
    }
    System.out.println("You got "+n+" correct!");
}

}

第3课: -

 import java.io.FileNotFoundException;
 public class VocabTestTester {
    public static void main(String[] args)throws FileNotFoundException{
        VocabularyTest test= new VocabularyTest();
        test.quiz();

        }
}

1 个答案:

答案 0 :(得分:0)

我猜你的VocabularyTest构造函数失败了,可能是你没有充分找到文件,尽管我希望看到这个例外。你最好检查一下。

在VocabularyTest构造函数的第一行打印“hi”,打印出文件路径并检查它是否与您期望的路径相匹配,然后将读入的单词打印出来控制台。

如,

public VocabularyTest() throws FileNotFoundException{
    System.out.println("In VocabularTest Constructor");
    words=new ArrayList<VocabularyWord>();
    ArrayList<String> str=new ArrayList<String>();
    File inputFile = new File("Vocabulary.txt");

    System.out.println(inputFile.getAbsolutePath());

    Scanner input = new Scanner(inputFile);
    while(input.hasNextLine()){
        System.out.println(input.nextLin());
    }