PTA (统计一段文字中的单词个数并按单词的字母顺序排序后输出)

统计一段文字中的单词个数并按单词的字母顺序排序后输出


现需要统计若干段文字(英文)中的不同单词数量。
如果不同的单词数量不超过10个,则将所有单词输出(按字母顺序),否则输出前10个单词。

注1:单词之间以空格(1个或多个空格)为间隔。
注2:忽略空行或者空格行。
注3:单词大小写敏感,即’word’与’WORD’是两个不同的单词 。

输入说明
若干行英文,最后以 !!! 为结束。

输出说明
不同单词数量。 然后输出前10个单词(按字母顺序),如果所有单词不超过10个,则将所有的单词输出。

输入样例
Failure is probably the fortification in your pole
It is like a peek your wallet as the thief when you
are thinking how to spend several hard-won lepta
when you Are wondering whether new money it has laid
background Because of you, then at the heart of the
most lax alert and most low awareness and left it
godsend failed
!!!

输出样例
49
Are
Because
Failure
It
a
alert
and
are
as
at


读入的时候可以采用next()的方法,这样就可以忽略空格和换行了。单词大小写敏感要去重统计还要按照字典序输出。很容易想到TreeSet这种容器,开完容器直接胡搞就过了。

mport java.util.Iterator;
import java.util.Scanner;
import java.util.TreeSet;

public class Main {
     
    public static void main(String[] args) {
     
        Scanner cin = new Scanner(System.in);
        TreeSet<String> s = new TreeSet<>();
        while(true){
     
            String str = cin.next();
            if(str.equals("!!!!!"))       break;
            s.add(str);
        }
        Iterator<String> it = s.iterator();
        System.out.println(s.size());
        int cnt = 0;
        while(it.hasNext()){
     
            cnt++;
            System.out.println(it.next());
            if(cnt == 10){
     
                break;
            }
        }
    }
}



你可能感兴趣的:(Java基础题)