字符个数统计
描述
编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次
例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3 。
数据范围:1≤n≤500
输入描述:输入一行没有空格的字符串。
输出描述:输出 输入字符串 中范围在(0~127,包括0和127)字符的种数。
示例1
输入:abc
输出:3
示例2
输入:aaa
输出:1
思路1
遍历字符串,放入map中,key为字符,value为出现次数,相同的map的次数+1
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String s1 = sc.nextLine();
HashMap<Character,Integer> map = new HashMap<>();
for (int i = 0; i < s1.length(); i++) {
if (map.containsKey(s1.charAt(i))){
map.put(s1.charAt(i),map.get(s1.charAt(i))+1);
}else{
map.put(s1.charAt(i),0);
}
}
System.out.println(map.values().size());
}
}
思路2
用HashSet,HashSet禁止插入重复的数据
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.next();
HashSet<Character> hs = new HashSet<Character>();
for(int i = 0;i < str.length();i++){
hs.add(str.charAt(i));
}
System.out.println(hs.size());
}
}
这篇博客介绍了两种Java方法来计算字符串中ASCII范围内(0~127)的不同字符个数。示例代码分别使用了HashMap和HashSet实现,通过遍历字符串并存储唯一的字符来达到计数目的。这两种数据结构可以有效地避免重复并统计不同字符的数量。
3万+

被折叠的 条评论
为什么被折叠?



