【Description】 问题描述
编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。例如:对于句子“one little two little three little boys”,总共有5个不同的单词:one, little, two, three, boys。
说明:
(1)由于句子当中包含有空格,所以应该用gets函数来输入这个句子;
(2)输入的句子当中只包含英文字符和空格,单词之间用一个空格隔开;
(3)不用考虑单词的大小写,假设输入的都是小写字符;
(4)句子长度不超过100个字符。
输入格式:输入只有一行,即一个英文句子。
输出格式:输出只有一行,是一个整数,表示句子中不同单词的个数。
输入输出样例
【Input】输入样例:
one little two little three little boys
【Output】输出样例:
5
HINT:时间限制:1.0s 内存限制:512.0MB
这道题其实还算简单,如果知道调用Java中自带的函数方法,很快就能做出来,下面附上解题代码:
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class count_words {
public static void main(String []args) {
String s;
Scanner re=new Scanner(System.in);
System.out.println("input:");
s=re.nextLine();
String[] a= s.split(" ");//用split方法获得每一个单词
f(a);
re.close();
}
static void f(String []a) {
Map<String, Object> map = new HashMap<String, Object>();//调用map函数去重
for (String str : a) {
map.put(str, str);
}
String[] b= map.keySet().toArray(new String[1]);
System.out.println(b.length);//最后数组的长度就是不重复的单词个数
}
}