字符个数统计

字符个数统计

 

      念天地之悠悠,独怆然而涕下。

 

题目描述

编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次。
例如,对于字符串abaca而言,有a、b、c三种不同的字符,因此输出3。

输入描述

输入一行没有空格的字符串。

输出描述

输出范围在(0~127)字符的个数。

示例

输入

abc

输出

3

Java代码示例

 1 import java.util.*;
 2 import java.io.*;
 3 
 4 // 可以看看ASCII对照表:https://baike.baidu.com/item/ASCII/309296?fromtitle=ascii%E7%A0%81&fromid=99077&fr=aladdin
 5 public class Main{
 6     public static void main(String [] args) throws IOException {
 7         //Scanner bufferReader = new Scanner(System.in);
 8         //String line = bufferReader.nextLine();
 9         // 使用BufferedReader & InputStreamReader 会比直接使用Scanner运行速度快些
10         BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
11         String line = bufferReader.readLine();      
12         int [] lineArray = new int [127];
13         int count = 0; // 统计重复的字符个数
14         // 遍历输入字符串的每一个字符,若首次出现将char对应的索引数组赋值,同时count + 1
15         for(int i = 0; i < line.length(); i++){
16             char temp = line.charAt(i);
17             if(lineArray[temp] == 0){  // 数组未赋值默认值为 0
18                 count++;
19                 lineArray[temp] = 1;  // 该cahr 数组索引赋值
20             }
21             // 假如输入tjt,第一次 lineArray[t] 赋值后,下次char为t的再过来就直接跳过
22         }
23         System.out.println(count);
24     }
25 }

验证通过

 

 

 

 

 

 

念天地之悠悠

独怆然而涕下

 

 
 
 
 
posted @ 2021-05-04 17:49  涛姐涛哥  阅读(506)  评论(0编辑  收藏  举报