题目描述
编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。
输入描述:
* 输入N个字符,字符在ACSII码范围内(0~127)。
输出描述:
* 输出字符的个数。
输入例子:
* abc
输出例子:
* 3
算法实现:
方法描述:
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args)
{
//统计字符串中不同字符个数
Scanner sc=new Scanner(System.in);
while (sc.hasNext())
{
String input=sc.nextLine();
if (input==null)
{
return;
}
int count=0;
Map<Integer,Character> hm=new HashMap<Integer, Character>();
for (int i = 0; i < input.length(); i++)
{
if (!hm.containsValue(input.charAt(i)))
{
count++;
hm.put(i, input.charAt(i));
}
}
System.out.println(count);
}
}
}
运行结果:
-> 12333
-> 3
拓展:
分别统计字符串的数字、字母、空格和其他字符(包括汉字、标点符号)的个数,并计算字符串的总个数。
统计字符串中不同字符个数。