JAVA(字符串的遍历,求每个字符出现的次数)

Map遍历

package org.baojiwenli.collection;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一段字符串:");
        String s = input.next();
        System.out.println("字符串的总长度:"+s.length());



        Map<Character,Integer> result = new HashMap<Character, Integer>();
        for(int i = 0; i < s.length(); i++){
            char ch = s.charAt(i);
            if(result.get(ch) != null){
                result.put(ch,result.get(ch)+1);
            }else{
                result.put(ch,1);
            }
        }
        for(Map.Entry entry: result.entrySet()){
            System.out.println(entry.getKey()+"->"+entry.getValue());
        }
        System.out.println("字符串总长度(不包括一样的字符):"+result.size());

    }
}

在这里插入图片描述

传统的For循环遍历+数组

package org.baojiwenli.collection;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入一个字符串:");
        String a = sc.next();
        StringConstitute(a);
    }
    //寻找一个字符串中各个字符出现的个数
    public static void StringConstitute(String str) {
        // 用于记录字符种类(可边长类型String)
        StringBuffer recordType = new StringBuffer();
        // 用于记录字符个数:定义一个一维数组
        int[] recordNumber = new int[str.length()];
        for (int i = 0; i < str.length(); i++) {
            // 用于临时计数
            int count = 0;
            // str.charAt(i)的值赋给medium
            String medium = str.charAt(i) + "";
            // 判断recordType中没有medium中的字符
            if (!recordType.toString().contains(medium)) {
                // 将medium中的字符添加到recordType中
                recordType.append(medium);
                count++;
                // 用于计算medium中的字符在字符串中的个数
                for (int j = i + 1; j < str.length(); j++) {
                    // 如果str.charAt(j)中的字符与medium中的字符相同时
                    if (medium.equals(str.charAt(j) + "")) {
                        count++;
                    }
                }
                // 将计数工具的值赋给recordNumber数组
                recordNumber[recordType.length()] = count;
            }
        }
        System.out.println("字符串\"" + str + "\"共有" + recordType.length() + "种字符");
        for (int i = 0; i < recordType.length(); i++) {
            System.out.println("字符\'" + recordType.charAt(i) + "\'共有" + recordNumber[i + 1] + "个");
        }
    }

}

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值