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());
//}
}
}
京公网安备 11010502036488号