字符个数统计

字符个数统计

 

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

 

题目描述

编写一个函数,计算字符串中含有的不同字符的个数。字符在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 @   涛姐涛哥  阅读(515)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
历史上的今天:
2019-05-04 Hadoop集群上搭建Ranger
点击右上角即可分享
微信分享提示