problem:统计单词数
思路:利用HashMap的特性——不能反复存储同一个键得数据,所以可以保证map里边儿的元素都是不重复的,存储完毕之后直接输出size就好了
注意事项:
1.利用string类的方法split()时,要用正则表达式“ +”来匹配,否则有三个连续空格以上的话,空格会占一个位子
2.hashmap为空的时候返回的是-1而不是0,所以如果字符串为空的时候,要单独考虑
source code:
package hduoj; import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
//注意:空格后面要加上“+”否则只会以一个空格来split,要是有几个空格连在一起,空格也会算一个单词
public class hdoj_2072 {
public static void main(String[] args) {
String line = "";
Scanner sc = new Scanner(System.in);
while(true){
line = sc.nextLine();
if(line.equals("#")) break;
Map<String,Integer> the_different_word = new HashMap();
String[] elements = line.split(" +");
if(elements.length==0) {
System.out.println(0);
continue;
}
// new util().prinout(elements);
for(String temp:elements){
if(!the_different_word.containsKey(temp)){
the_different_word.put(temp,1);
}
}
System.out.println(the_different_word.size());
}
}
}
注:代码已经AC,贴上来的是在自己编译器里的,需要改关键字
希望对大家有所帮助
以上