需求:
编写函数统计一篇英语文章中不同单词的个数(去除重复的单词)
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流的方式接收字符串