java HashSet解法
题目描述
编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次
例如,对于字符串abaca而言,有a、b、c三种不同的字符,因此输出3。
分析
涉及到去重的时候,又是单列表,首先想到HashSet,唯一的难点是判断字符的ASCII码在(0-127)这个范围内;其实只要把字符强转成整型,就是其对应的ASCII码了。这种情况下只要判断 该值是否在0-127内就可以了。
import java.util.*; public class Main { public static void main(String[] args){ Scanner sc =new Scanner(System.in); HashSet<Integer> set = new HashSet<>(); //HashSet<Character> set = new HashSet<>(); //while(sc.hasNext("")){ String s = sc.nextLine(); char[] charArray = s.toCharArray(); for(char c : charArray){ int i =c; if(i>=0 && i<=127){ set.add(i); } } System.out.println(set.size()); //} } }