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

问题描述 投票:1回答:1

我的目标是使用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. for
  2. 帮助
  3. 感谢
  4. the
java string oop set treeset
1个回答
0
投票

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

尝试一下:

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);
© www.soinside.com 2019 - 2024. All rights reserved.