欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java实现字符串倒序输出以及判断一个字符串中某个字符的出现次数

程序员文章站 2024-03-15 16:11:17
...


忽然想到笔试时经常出现的两个问题,碰到了只能写个大概的思路代码出来,自己都不能确定是不是可以运行,不是很复杂的内容,就随便写写了。

判断一个字符串中某个字符的出现次数

听到这个大家第一反应该是先把字符串转换为字符数组,然后使用foreach循环,在循环体内进行字符比对,代码如下:

public static void main(String[] args) {
        String str = "ABCDEFJ ABPA B";
        char searchChar = 'B';
        int count = 0;
        char[] charArray = str.toCharArray();
        for (char item : charArray) {
            if (item == searchChar) {
                count++;
            }
        }
        System.out.println("字符" + searchChar + "出现的次数为:" + count);
    }

但这个只能对比单个字符,如果是个多个字符组合的就没办法了,所以就需要用下面的方法:

public static void main(String[] args) {
        String str = "ABCDEFJ ABPA B";
        String searchChar = "AB";
        //方法A
        String newStr = str.replaceAll(searchChar, "");
        int count1 = (str.length() - newStr.length()) / searchChar.length();
        System.out.println("[方法A]字符" + searchChar + "出现的次数为:" + count1);

        //方法B
        int count2 = 0;
        while (str.contains(searchChar)){
            str = str.substring(str.indexOf(searchChar) + searchChar.length());
            count2 ++;
        }
        System.out.println("[方法B]字符" + searchChar + "出现的次数为:" + count2);
    }

方法A是最简洁的,计算长度差就ok了(面试官也应该喜欢这个答案吧)

字符串倒序输出

方法一:StringBuilder 和 StringBuffer里有一个自带reverse()方法,让字符序列被序列的相反部分替换,简单来说就是反序输出。
方法二:利用String类的toCharArray(),再通过foreach倒序拼接。

public static void main(String[] args) {
        String str = "123456789";
        System.out.println("反转前:" + str);
        //方法一
        String reverseStr = new StringBuilder(str).reverse().toString();
        System.out.println("【方法一】反转后" + reverseStr);
        
        //方法二
        char[] chars = str.toCharArray();
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = chars.length - 1; i >= 0 ; i--) {
            stringBuilder.append(chars[i]);
        }
        System.out.println("【方法二】反转后:" + stringBuilder.toString());
    }

最终输出结果
Java实现字符串倒序输出以及判断一个字符串中某个字符的出现次数