计算字符串中的各个字母的个数

package Set;

import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;

/*
 * 练习:
"dadfadfaafadsb"获取该字符串中,每一个字母出现的次数。
要求打印的结果是:a(5)b(1)...;
思路:对于结果的分析发现,字母和次数之间存在着映射关系。而且这种关系很多。
很多就需要存储,能存储映射关系的容器有数组和Map集合。
关系一方式有序编号吗?没有!
那就是使用Map集合。又发现可以保证唯一性的一方具备着顺序如a b c...
所以可以使用TreeMap集合。
这个集合最终应该存储的是字母和次数的对应关系
1,因为操作的是字符串的字母,所以先将字符串变为数组。
2,遍历字符该数组,用每一个字母作为键去查这个表
如果字母键不存在,那就将该字母作为键1作为值存储到map集合中
键相同值会覆盖。这样就记录住了该字母的次数。
3,遍历结束,map集合就记录所有字母的出现的次数
 */
public class Test {
    public static void main(String[] args) {
        String str="dadfadfaafadsb";
        String s=getCharCount(str);
        
        System.out.println(s);
        
    }

    private static String getCharCount(String str) {
        // TODO Auto-generated method stub
        char[] c=str.toCharArray();
        Map<Character,Integer> m=new TreeMap<Character,Integer>();
        for(int i=0;i<c.length;i++){
            Integer value=m.get(c[i]);
            if(value==null){
                m.put(c[i], 1);//如果没有此元素,则添加值为1
            }else{
                m.put(c[i], value+1);//否则添加值为value+1
            }
        }
        return mapToString(m);//转换格式
    }
    public static String mapToString(Map<Character,Integer> map){
        StringBuilder sb=new StringBuilder();
        Iterator<Character> it=map.keySet().iterator();
        while(it.hasNext()){
            Character key=it.next();
            Integer value=map.get(key);
            sb.append(key+"("+value+")");
            
        }
        return sb.toString();
    }

}

转载于:https://www.cnblogs.com/lzzhuany/p/4517608.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以编写一个函数,接收一个字符串作为参数,然后遍历字符串的每个字符,统计数字、字母、空格以及其他字符的个数。具体实现可以使用循环和条件语句来判断每个字符的类型,然后累加相应的计数器。最后返回一个包含各个类型字符个数的字典或元组。 ### 回答2: 编写一个函数计算传入字符串数字、字母、空格以及其他字符的个数。 首先,我们需要一个变量来保存数字的个数字母个数、空格的个数以及其他字符的个数。我们可以用四个变量来分别保存。接下来,我们需要遍历传入的字符串,依次检查每一个字符属于哪种类型,然后将对应的计数器加1即可。 具体实现如下: def count_characters(s): """ 计算传入字符串数字、字母、空格以及其他字符的个数 :param s: 待计算字符串 :return: 四个计数器,分别记录数字、字母、空格和其他字符的个数 """ num_count = 0 # 数字个数 letter_count = 0 # 字母个数 space_count = 0 # 空格个数 other_count = 0 # 其他字符个数 # 遍历字符串 for char in s: if char.isdigit(): # 数字 num_count += 1 elif char.isalpha(): # 字母 letter_count += 1 elif char.isspace(): # 空格 space_count += 1 else: # 其他字符 other_count += 1 return num_count, letter_count, space_count, other_count 这个函数比较简单,我们可以用一些字符串来测试一下: test_string = "I am a string 123 !@#" num_count, letter_count, space_count, other_count = count_characters(test_string) print("数字个数:", num_count) print("字母个数:", letter_count) print("空格个数:", space_count) print("其他字符个数:", other_count) 输出结果为: 数字个数: 3 字母个数: 13 空格个数: 4 其他字符个数: 6 可以看到,这个函数成功地计算了传入字符串数字、字母、空格以及其他字符的个数。 ### 回答3: 实现该函数可以通过遍历传入的字符串的每个字符,然后根据不同的字符类型进行计数。具体实现如下: ```python def count_chars(s): num_count = 0 # 数字计数器 alpha_count = 0 # 字母计数器 space_count = 0 # 空格计数器 other_count = 0 # 其他字符计数器 for c in s: if c.isdigit(): num_count += 1 elif c.isalpha(): alpha_count += 1 elif c.isspace(): space_count += 1 else: other_count += 1 print('数字个数:', num_count) print('字母个数:', alpha_count) print('空格个数:', space_count) print('其他字符个数:', other_count) ``` 该函数接受一个字符串参数`s`,并依次遍历每个字符,然后根据不同的字符类型进行计数。首先判断该字符是否为数字,如果是则将数字计数器加一,否则再判断是否为字母,如果是则将字母计数器加一,否则再判断是否为空格,如果是则将空格计数器加一,否则将其他字符计数器加一。 最后,利用`print`函数输出每个类型的计数。可以使用该函数来计算任意字符串数字、字母、空格以及其他字符的个数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值