十行代码查询英语文章中不同单词的个数

需求:
编写函数统计一篇英语文章中不同单词的个数(去除重复的单词)
1、把文章拆分成单词保存到数组
2、去除数组中重复的单词
3、返回单词个数
知识点:
数组、字符串操作、set集合 、接收键盘输入(Scanner)

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
/**
 * 功能:统计一篇英语文章中不同单词的个数(去除重复的单词)
 * 作者:摘星
 */
public class Text {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入");
        String st=sc.nextLine();
        
        String[] buffer=st.split(" ",-1);
        
        int n1=buffer.length;  // 未去重前的单词个数
        
        Set<String> set = new HashSet<String>(Arrays.asList(buffer)); 
        //AddAll是传入一个List,将此List中的所有元素加入到当前List中
        // 也就是当前List会增加的元素个数为传入的List的大小
        
         int n2=set.size(); // 去重后的单词个数
        System.out.println("去重前单词个数:"+n1+"去重后单词个数:"+n2);
    }
}

在这里插入代码片

遇到的问题:
在接收键盘输入时,next方法不能接收空格,即遇到空格就只接收空格前的数据,
解决方法:使用nextLine方法,或者采用io流的方式接收字符串

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章