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