题目描述
编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。
输入描述:
输入N个字符,字符在ACSII码范围内。
输出描述:
输出范围在(0~127)字符的个数。
输入例子:
abc
输出例子:
3
import java.util.Scanner;
import java.util.HashSet;
import java.util.Set;
public class Main{
public static int noRepeatCharacters(String str){
int len=str.length();
Set<Character> set=new HashSet<>();
int count = 0;
for(int i=0;i<len;i++){
//有重复的,就统计加1
if(!set.add(str.charAt(i))){
count++;
}
}
//总长度减去重复的字符,即为不同字符的个数
return len-count;
}
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
String str=sc.nextLine();
System.out.print(noRepeatCharacters(str));
}
sc.close();
}
}