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,贴上来的是在自己编译器里的,需要改关键字
希望对大家有所帮助
以上
原文:https://www.cnblogs.com/lavender-pansy/p/12174820.html