统计字符串中出现最多的字符和次数
统计字符串中出现最多的字符和次数
方法一
实现思路:
1.创建一个空对象
2.遍历这个字符串,如果遍历的字符出现在json对象里面就次数+1,不在里面就新增一个key,value就是1
3.分别定义一个变量maxStr存放字符和maxCount统计字符出现的次数
4.遍历json对象的key值,如果key值大于变量存放的最大字符次数,就把json的key值重新赋值给maxCount,字符就等于key
function getMaxCount(str){
let json = {};
for (i = 0; i < str.length; i++) {
if (!json[str.charAt(i)]) {
json[str.charAt(i)] = 1;
}else{
json[str.charAt(i)]++;
}
}
let maxStr = '';
let maxCount = 0;
for(let key in json){
if(json[key] > maxCount){
maxCount = json[key];
maxStr = key;
}
}
return `出现次数最多的字符为:${maxStr},出现的次数为:${maxCount}`;
}
let str = 'hellojavascripthellohtmlhellocss';
console.log(getMaxStr(str));
方法二
实现思路:
1.字符串处理为一个数组,调用sort()方法排序,join拼接为字符串
2.遍历每个字符,调用lastIndexOf()方法,
3.与最大的次数maxCount进行比较,如果比maxCount大,就更新maxCount,否则继续
function getMaxCount(str){
let maxCount = 0;
let maxCountChar = '';
str = str.split('').sort().join('');
for(let i = 0,j =str.length;i<j;i++){
let char =str.charAt(i);
let charCount = str.lastIndexOf(char) - i + 1;
if(charCount > maxCount){
maxCount = charCount;
maxCountChar = char;
}
i = str.lastIndexOf(char);
}
return `出现次数最多的字符为${maxCountChar},出现的次数为${maxCount}`
}
let str = 'hellojavascripthellohtmlhellocss';
console.log(getMaxCount(str));
方法三
1.使用字符串的replace()方法
2.先统计原来字符长度
3.获取到第一个字符
4.通过正则将获取到的字符进行替换为空
5.再次统计字符长度
6.原字符长度 - 替换之后的字符长度 得出的结果就是该字符的次数
function getMaxCount(str) {
let maxCount = 0;
let maxCountChar = '';
while (str) {
let length = str.length;
let char = str.charAt(0);
let reg = new RegExp(char, 'g');
str = str.replace(reg, '');
let restLength = str.length;
let charCount = length - restLength;
if (charCount > maxCount) {
maxCount = charCount;
maxCountChar = char;
}
}
return `出现次数最多的字符为${maxCountChar},出现次数是${maxCount}次`
}
let str = 'hellojavascripthellohtmlhellocss';
console.log(getMaxCount(str));