返回数组中字符的出现次数


public class StringDemo4 {
    public static void main(String[] args) {
        //返回每个字符出现的次数--标志位
        String s = "fe87wer338787w/37r8s4fe";
        //给定布尔数组--存储字符串中每个字符的状态(true表示的状态为未统计)
        boolean[] arr = new boolean[s.length()];
        for (int x = 0; x < s.length(); x++) {
            arr[x] = true;
        }
        //遍历字符串
        for (int x = 0; x < s.length(); x++) {
            //判断当前字符的状态是否为未统计
            if (arr[x]) {
                //需要获取当前字符
                //进行判断未统计
                char c=s.charAt(x);
                //计数变量
                int count=1;//字符最少出现的是一次
                //遍历字符串后续内容  遍历了一个字符
                for(int j=x+1;j<s.length();j++){
                    if(c==s.charAt(j)){
                        count++;
                        //改状态
                        arr[j]=false;
                    }
                }
                //输出每个字符出现的个数
                System.out.println(c + "出现的次数为:" + count);
    }}}}

2.

public class demo4 {
    public static void main(String[] args) {
        //返回每个字符串的个数
        String s = "erfq3rthewq";
        //定义变量存储长度值
        int len = 0;
        while (s.length() != 0) {
            len = s.length();
            char c = s.charAt(0);
            s = s.replaceAll(c + "", "");
            System.out.println(c+":"+(len-s.length()));
        }
    }
}

3.映射


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

public class t1 {
    //给定字符串返回每个字符出现的次数(用映射)
    public static void main(String[] args) {
        String s="rkjhoiweujqwegtr";
        Map<Character,Integer> map=new HashMap<>();
        for(int i=0;i<s.length();i++) {
            //获取每个字符
            char c = s.charAt(i);
            //判断获取的字符是否在映射中出现
            if (map.containsKey(c)) {
                //如果出现值加一,重新存放到映射中
               map.put(c,map.get(c)+1);
            }else{
                //字符第一次出现
                map.put(c,1);
            }
        }
        for(Map.Entry<Character,Integer> i:map.entrySet()){
            System.out.println(i);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值