思路:
使用哈希表。
获得输入之后,挨个检查字符。只要不是/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);

 

 
 
posted on 2022-07-31 18:22  Jolyne123  阅读(330)  评论(0)    收藏  举报