杭电oj 2072————统计单词数(java)

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,贴上来的是在自己编译器里的,需要改关键字

希望对大家有所帮助

以上

猜你喜欢

转载自www.cnblogs.com/lavender-pansy/p/12174820.html