0

私はJavaが初めてです。テキスト ファイルからいくつかの単語を既存のテキスト ベースの単語リストに追加しようとしています。以下のコードを実行しています

  1. ファイルから既存のリストに単語を追加する
  2. 単語のリストを並べ替える
  3. 単語をテキスト ファイルに保存する

「wordList」は、既存の単語を含む配列リストです。

    private void updateDictionaryFile(String filepath) {
    String textCurrentLine = "";

    BufferedReader dictionaryFile = null;
    try {

        Scanner fileScanner = new Scanner(new File(filepath));
        while(fileScanner.hasNextLine()){
            System.out.println("fileScanner.hasNextLine()  "+  fileScanner.hasNextLine());
            textCurrentLine = fileScanner.nextLine();
            if(textCurrentLine.length() > 0)
            if (!wordList.contains(textCurrentLine)) {
                wordList.add(textCurrentLine);
            }
        }

        Collections.sort(wordList);

        String newFile = filepath.replace(".txt", "_new.txt");
        PrintWriter pw = new PrintWriter(new FileOutputStream(newFile));
        for (int i = 0; i < wordList.size(); i++) {
            pw.println(wordList.get(i).toString());
        }
        pw.close();
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            if (dictionaryFile != null) {
                dictionaryFile.close();
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}

新しいファイルにリストされている単語はソートされていません。間に何かが欠けていますか?

以下は出力です

A
Achieve
Although
Anything
Ask
Avoid
Badly
Bluma
But
Find
Forget
Goal
Goals
How
In
It
Just
Keep
Know
NOT
Often
Once
One
Psychologists
Reasoning
Reject
Remember
Research
Russian
Shifting
Sidestep
So
Sometimes
Start
Stop
The
This
Those
Under
Visualise
Visualising
We
What
When
With
You
Zeigarnik
a
aa
aah
aahed
aahing
aahs
aal
aalii
aaliis
aals
aardvark
aardwolf
aargh
aarrgh
aarrghh
aas
4

1 に答える 1

5

Collections.sort(wordList);完全に動作します。ケースを無視する必要がある場合は、以下のコードを使用してください。

Collections.sort(wordList,String.CASE_INSENSITIVE_ORDER);
于 2013-11-05T11:55:16.413 に答える