

思路:
使用哈希表。
获得输入之后,挨个检查字符。只要不是/n换行符,就继续进行:
字符是否是ASCII码范围,0-127包括0,127。若是,则查看哈希表中有无该字符,若有则不做动作,若无则计数+1。
若不是范围,也不做动作。
1 import java.io.BufferedReader;
2 import java.io.IOException;
3 import java.io.InputStreamReader;
4 import java.util.*;
5
6
7 public class Main {
8 public static void main(String[] args) throws IOException {
9 int num = 0;//计数
10 String line = "";//输入行
11
12
13 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
14 Map<Character,Integer> ages = new HashMap<Character,Integer>();
15
16 line = br.readLine();
17 //System.out.println(line);
18 for(int i = 0;i<line.length();i++){
19 Character str = line.charAt(i);//取得单个字符
20 if(Integer.valueOf(str)>=0&&Integer.valueOf(str)<=127){//字符在ASCII范围
21 //System.out.println(Integer.valueOf(str));
22 if(!ages.containsKey(str)){//存在不做动作,不存在就计数
23 //System.out.println(num);
24 num = num+1;
25 ages.put(str,i);//将未存在的放入哈希表
26 }
27 }
28 }
29 System.out.println(num);
30
31 }
32 }
谷歌:
1.char转ascii码值
Character.valueOf(str);
原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/tech/java/278069.html