Js查找字符串中出现次数最多的字符及个数实例解析_javascript技巧

如sssfgtdfssddfsssfssss,出现最多的字符是s,出现了12次

传统写法

分析:

1.准备一个空的json,通过循环字符串的每个字符来看,如果json里没有这个字符,就在json里创建一个新的数组,并把这个字符放进数组里,如果json里有这个字符,继续把字符添加进数组里,这时循环完json里有n个数组

2.找出json里长度最长的数组,此时长度即个数,而最多的字符就是这个参数,用到for...in...循环和参数attr

var str="sssfgtdfssddfsssfssss";
function max(){
var json={};
var num=0;
var value=null;
for(var i=0;i<str.length;i++){
var k=str[i];
if(!json[k]){
json[k]=[];
}
json[k].push(k); //这里不需要else,否则只有存在这个字符时才添加。次数会少一次
}
for(var attr in json){
if(num<json[attr].length){
num=json[attr].length;
value=json[attr][0];
}
}
alert("出现最多的字符是:"+value+',出现次数是:'+num);
};
max(str);

如果不想往json里放东西怎么做呢?

分析:

1.准备一个空的json,通过循环字符串的每个字符来看,如果json里没有这个字符,就把这个字符的数目设为1,如果有则数目++

2.循环json里的字符,只要存在,就把他的数目赋给一个变量,并且每次都比较新的字符数量和这个变量的大小,如果比变量大,则更新变量的值,最后这个变量的值就是最多字符的数目

而最多的字符就是json里这个字符

var str="sssfgtdfssddfsssfssss";
function max(){
var json={};
for(var i=0;i<str.length;i++){
var k=str[i]; //k是所有字符,字符串也跟数组一样可以通过中括号下标方法取到每个子元素
if(json[k]){
json[k]++; //json里有这个字符时,把这个字符的数量+1,
}
else{
json[k]=1; //否则把这个字符的数量设为1
}
}
var num=0;
var value=null;
for(var k in json){ //s、f、g、t、d
if(json[k]>num){
num=json[k];
value=k;
}
}
alert("出现最多的字符是:"+value+',出现次数是:'+num);
};
max(str); 

正则的方法

分析:

1.字符串转为数组进行排序,以便正则选出相同的挨在一起的字符

2.通过正则replace()方法的两个参数,来匹配出现最多的字符和数量

var str="sssfgtdfssddfsssfssss";
var num=0;
var value=null;
function max(){
var new_str=str.split("").sort().join("");
var re=/(\w)\1+/g; //没有\1,re就是一整个排好序的字符串,有了\1就是出现过的有重复的取出来,\1表示跟前面第一个子项是相同的
new_str.replace(re,function($0,$1){ //$0代表取出来重复的一个个整体,如[s,s...],[f,f..],[d,d....] $1代表这个整体里的字符
if(num<$0.length){
num=$0.length;
value=$1
}
});
alert(value+":"+num)
};
max(str);

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索javascript 字符串、javascript字符串截取、javascript替换字符串、javascript分割字符串、javascript 转字符串,以便于您获取更多的相关知识。

时间: 2024-10-22 03:40:04

Js查找字符串中出现次数最多的字符及个数实例解析_javascript技巧的相关文章

JS查找字符串中出现次数最多的字符_javascript技巧

在一个字符串中,如 'zhaochucichuzuiduodezifu',我们要找出出现最多的字符.本文章将详细说明方法思路. 先介绍两个string对象中的两个方法:indexOf()和charAt()方法 indexOf()方法介绍 返回某个指定的字符串值在字符串中首次出现的位置 charAt()方法介绍 返回某个指定位置的字符 先做一个小测试,找到字符串'woainixiaoli'中的每一个'i'出现的位置. <script> var arr = 'woainixiaoli'; var

js统计字符串中出现次数最多的字符例子

例子,来自jb之家 应用正则表达式的全局匹配,可以匹配出字符出现的次数,比较这些次数,将最大的保存并返回.代码如下:  代码如下 复制代码 var countMost = function(str){ if(!str) return; var _count = 0, _temp = 0, _reg, _char; for(var i=0; i<str.length; i++){ _reg = new RegExp(str.charAt(i), 'g'); _temp = str.match(_r

js判断字符串中出现次数最多的字符 并统计出现次数

例子  代码如下 复制代码 var str = "abcdefgaaaaaaddda"; var obj = {}; var arr = []; var letter; for(var i = 0,len = str.length;i<len;i++){ letter = str[i]; if(!obj[letter]){ obj[letter] = 1; }else{ obj[letter]++; } } var max_key,max_num=0; for(key in ob

JS中判断字符串中出现次数最多的字符及出现的次数的简单实例_javascript技巧

JS中判断字符串中出现次数最多的字符及出现的次数的简单实例 <script type="text/javascript"> var str = 'qwertyuilo.,mnbvcsarrrrrrrrtyuiop;l,mhgfdqrtyuio;.cvxsrtyiuo'; var json = {}; //遍历str拆解其中的每一个字符将其某个字符的值及出现的个数拿出来作为json的kv for (var i = 0; i < str.length; i++) { //

JavaScript实现计算字符串中出现次数最多的字符和出现的次数

 这篇文章主要介绍了JavaScript实现计算字符串中出现次数最多的字符和出现的次数,本文直接给出实现代码,需要的朋友可以参考下     "计算出字符串中出现次数最多的字符是什么,出现了多少次?" 看到这个需求,我想大多数人应该首先想到的是转换成数组,再做处理,当然是可以解决问题的,然后这里提供一个巧妙的算法设计,无需转数组,可以很快解决问题,代码如下:   代码如下: var str = "adadfdfseffserfefsefseeffffftsdg"; v

一个字符串中出现次数最多的字符 统计这个次数【实现代码】_javascript技巧

var str = 'asdfssaaasasasasaa'; var json = {}; for (var i = 0; i < str.length; i++) { if(!json[str.charAt(i)]){ json[str.charAt(i)] = 1; }else{ json[str.charAt(i)]++; } }; var iMax = 0; var iIndex = ''; for(var i in json){ if(json[i]>iMax){ iMax = j

今天去康拓普面试,使用Java计算字符串中出现次数最多的字符

问题描述 有谁愿意帮帮我吗,感谢大侠 解决方案 /** * @param args */public static void main(String[] args) throws Exception {String contents = "Hello World";char[] content = contents.toCharArray();Map<Character, Integer> map = new HashMap<Character, Integer>

用JS得到字符串中出现次数最多的字母

网上有这样一道题目: Quote: 一个字符串String="adadfdfseffserfefsefseetsdg",找出里面出现次数最多的字母和出现的次数. 经典的解答思路为:取出字符串的第一个字符(首字母),利用的字符串的replace方法将符合正则表达式(第一个字符)替代为空,此字母出现的次数为原始的字符串长度减去替代后的字符串长度.循环迭代找出长度最长的字母. <script type="text/javascript">//<![CDA

用JS得到字符串中出现次数最多的字母_javascript技巧

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 补充: 复制代码 代码如下: eval("str = str.replace(/"+getStr+"/g,'')"); 可能很多人想这样写 str = str.replace(/getStr/g,"),可结果却是会出错的.为什么呢,在这句中正则表达式匹配的是 getStr 字符串,而不是 getStr 指向的首字母.通过 eval 方法可以避免(首先 getStr 得到指向的首字母,用字符串连接