这么简单的算法题,竟然还有人不会

一、算法题

题目:如何统计一个字符串中某个字符的个数?

二、两种思路

对于这道题,我想到了两种思路。

思路一: 把字符串拆分成各个字符,使用循环和条件语句来统计某个字符出现的个数。

思路二: 无需拆分,把要统计的那个字符替换为空字符,并计算替换前和替换后的字符串的长度之差。

话不多说,直接上代码。

思路一实例代码:

package cn.yydy.demo;

public class CharNumber {

    public static void main(String[] args) {
        String str = "HelloJava";
        char a = 'a';
        int num = 0;

        char[] chars = str.toCharArray();
        for (char c : chars){
            if (c == a)
                num++;
        }
        
        System.out.println("字符" + a + "的个数:" + num);
    }
}

运行结果:

字符a的个数:2

实例分析:调用了toCharArray()方法,该方法的作用是将源字符串转换成一个char类型的数组。再把得到的数组遍历,如果满足条件c == a的话,用num++进行计数,最终num的值就是字符串HelloJavaa字符的个数。

思路二实例代码:

package cn.yydy.demo;

public class CharNumber {

    public static void main(String[] args) {
        String str = "HelloJava";
        String a = "a";
        int num = 0;

        String newStr = str.replaceAll(a,"");	//""中间不加空格
        num = str.length() - newStr.length();

        System.out.println("字符" + a + "的个数:" + num);
    }
}

运行结果:

字符a的个数:2

实例分析:调用了replaceAll(String regex,String replacement)方法,该方法的作用是将源字符串中的某个字符替换成另一个字符(或替换成空字符)。

通过该方法,将字符串a替换成空字符,再用原始字符串的长度str.length()减去替换后字符串的长度newStr.length(),最终num的值就是字符串HelloJavaa字符的个数。

三、总结

如果觉得还不错的话,就送我一个赞吧!如果本文对你有用的话,也欢迎收藏哦!

猜你喜欢

转载自blog.csdn.net/m0_47890251/article/details/107687204