Java中如何提取字符串中出现最多的字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中如何提取字符串中出现最多的字符相关的知识,希望对你有一定的参考价值。

Java中如何提取字符串中出现最多的字符

感觉这个题目的思想和去年秋季校园招聘阿里巴巴(西安)的第一道编程题很像。
你可以先看看。

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

public class Test

int length;

public Character theMostCharOf(String string)
Character character = string.charAt(0);
int maxTimes = 1;
Map<Character, Integer> map = new HashMap<Character, Integer>();
for (int i = 0; i < string.length(); i++)
char c = string.charAt(i);
if(null == map.get(c))map.put(c, 1);
else
int length = map.get(c)+1;
map.put(c, length);
if(length > maxTimes)
maxTimes = length;
character = c;



this.length = maxTimes;
return character;


public static void main(String[] args)

Test test = new Test();
char c = test.theMostCharOf("xsakjnakbashkjnxajkvhkdcnajkxhsjkac");
System.out.println(c + ":" + test.length);



参考资料:答案:k:7

参考技术A 先把字符串split成N个字符
再用每个字符循环得到出现次数
然后比较……
笨方法哈

面试题:字符串中出现次数最多的字符以及出现的次数

java版:

public static void test() {
        Scanner scanner = new Scanner(System.in);
        String scannerStr = scanner.nextLine().trim();
        scanner.close();
        int maxLength = 0;
        StringJoiner maxStr = new StringJoiner("|");
        while (scannerStr.length() > 0) {
            // 截取第一个字符
            String firstChar = scannerStr.substring(0,1);
            int length = scannerStr.length();
            // 替换所有第一个字符
            scannerStr = scannerStr.replaceAll(firstChar, "");
            // 判断:总长度 - 去掉第一个字符后的长度 >= 已知的最大长度
            if (length - scannerStr.length() >= maxLength) {
                // 计算第一个字符出现的次数
                maxLength = length - scannerStr.length();
                // 记录出现最多的字符
                maxStr.add(firstChar);
            }
        }
        System.out.println("出现次数最多的字符是:" + maxStr.toString() + ",出现的次数:" + maxLength);
    }

js版本:

function test(){
    var str = "aaabbbcc";
	var maxLength = 0;
	var maxStr = "";
    while(str.length > 0){
        // 获取str长度
        var strLength = str.length;
        // 截取第一个字符
        var strSub = str.substring(0,1);
        // 将第一个字符全部替换
        str = str.replaceAll(strSub,"");
        // 判断总长度 - 截取后的总长度,是否大于已选出的最大长度
        if(strLength - str.length >= maxLength){
            // 计算字符出现次数
            maxLength = strLength - str.length;
            // 记录出现的字符
            maxStr = maxStr +  "|" + strSub;
        }
    }
    console.log(maxStr,maxLength)
}

以上是关于Java中如何提取字符串中出现最多的字符的主要内容,如果未能解决你的问题,请参考以下文章

有一万条字符串,要找出前10条出现次数最多的,该如何解决

java一个字符串中出现次数最多的字符以及次数

Java,输入一字符串,统计连续出现最多的字符,以及出现次数。 【编程】

JAVA 编程,输入一串字符,找出出现最多的字符

python输入小写字符串,输出字符串中出现字母最多的字母及其出现次数,如果有多

JAVA题,利用数组求出用户输入的字符串中出现次数最多的字符串