如何在按字母顺序排序的不同行上打印输入中的每个不同单词? - Java

How can I print every different word from an input on a different line sorted in an alphabetical order? - Java

我的目标是使用 BufferedReader 阅读文本。我试过这样的事情:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Set;
import java.util.TreeSet;
import java.io.*;

public class Main {
    public static void main(String[] args)throws IOException {
        String line;
        String[] word = new String[1000];
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] words = new String[1000];
        while ((line = br.readLine()) != null)  {
            word = line.split("\s+");
        }

        Set<String> s = new TreeSet<String>();
        for (int i = 0 ; i < words.length ; ++i) {
            s.add(words[i]);
        }
        for (String value : s)
            System.out.println(value);
    }
}

例如: 输入:

  1. 感谢您的帮助
  2. 帮助

输出:

  1. 帮助
  2. 谢谢

您没有在阅读代码行后更新单词。

试试这个:

String line;
        String[] word = new String[1000];
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        Set<String> s = new TreeSet<String>();
        while ((line = br.readLine()) != null)  {
            word = line.split("\s+");
            for (int i = 0 ; i < word.length ; ++i) {
                s.add(word[i]);
            }
        }

        for (String value : s)
            System.out.println(value);