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(_reg).length;
if(_temp > _count){
_count = _temp;
_char = str.charAt(i);
}
}
return _count;
//return {count:_count, char:_char};
};

注释掉的代码可以一并返回出现最多次数的字符。

例子,来自iteye技术

将字符串的字符保存在一个hashtable中,key是字符,value是这个字符出现的次数

 代码如下 复制代码
varstr="abcdefgaddda";
varobj={};
for(vari=0,l=str.length;i<l;i++){
varkey=str[i];
if(!obj[key]){
obj[key]=1;
}else{
obj[key]++;
}
}
/*遍历这个hashtable,获取value最大的key和value*/
varmax=-1;
varmax_key="";
varkey;
for(keyinobj){
if(max<obj[key]){
max=obj[key];
max_key=key;
}
}
alert("max:"+max+"max_key:"+max_key);

另附两上统计字符串内字符出现次数

看看cloudchen给出的使用正则表达式的代码:

 代码如下 复制代码

<SCRIPT LANGUAGE="JavaScript">
var str = "cloudchen";
var find = "c";
var reg = new RegExp(find,"g")
var c = str.match(reg);
alert(c?c.length:0)
</SCRIPT>
var reg = new RegExp(find,"g")一句建立了一个正则表达式,也可以写为:

var reg = /c/g;

c即要匹配的字符,其中g表示全局搜索。match则返回匹配的字符(串)。这样也就获得了字符串中指定字符出现的次数。这是一个很正规的做法。

split用来统计字符的出现次数

只能用太有才了来形容“我佛山人”,他给出了如下的代码:

 代码如下 复制代码
<script language="vbs">
MsgBox UBound(Split("blueideablueideabbs","b"))
</script> 

VBS的,但是用JS也一样。重要的是这个思路,简直是太简单了!用字符串的split方法将其分为数组,数组的length-1就是字符的出现次数。代码修改为JavaScript如下:

 代码如下 复制代码
<script type="text/javascript">
function test(){
var str = "www.111cn.net";
alert(str.split("c").length-1);
alert(str.split("w").length-1);
}
</script>

效果如下,首先显示的是“c”字符的次数,然后是“w”字符的出现次数。

时间: 2024-10-25 00:58:03

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

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

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

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

如sssfgtdfssddfsssfssss,出现最多的字符是s,出现了12次 传统写法 分析: 1.准备一个空的json,通过循环字符串的每个字符来看,如果json里没有这个字符,就在json里创建一个新的数组,并把这个字符放进数组里,如果json里有这个字符,继续把字符添加进数组里,这时循环完json里有n个数组 2.找出json里长度最长的数组,此时长度即个数,而最多的字符就是这个参数,用到for...in...循环和参数attr var str="sssfgtdfssddfsssfsss

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技巧

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

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

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

js 统计字符串中 出现次数

下面的函数作用不大,特别是统计tnr这种特殊字符了,不过你可以用它做统计其它字符在字符串中出现次数了,charinstring是我们经常会碰到的. */ var whitespace = " tnr";  function charinstring (c, s)  {   for (i = 0; i < s.length; i++)   {   if (s.charat(i) == c) return true;   }   return false  }  function s

今天去康拓普面试,使用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