昨天有一个网友问我一个问题,就是怎么样求一个字符串中最多出现的字符数。我想了想感觉这个问题的解决方法挺多的,于是我就写了一个给他做参考,如有什么问题还请广大网友朋友指正:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
</body>
<script>
var str="thfsggggggggghjhjghjghjhgjjjjjjjjjjjjjjjjjjgfgrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr";
var obj={};
var arr=[];
var maxnum=0;
var strLen;
for(var i=0;i<str.length;i++){
var t=str.charAt(i);
if(!obj[t]){
obj[t]=1;
}else{
obj[t]+=1;
}
if(obj[t]>maxnum){
maxnum=obj[t];
strLen=t;
}
}
alert("出现最多的是"+strLen+"出现了:"+maxnum+"次");
</script>
</html>
下面这个是在网上看到的一种方法:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>无标题文档</title> 6 </head> 7 8 <body> 9 10 </body> 11 12 <script> 13 var str="asdfjksggggggggggggggggggggggggdjfljsdflkffffffffffdfdfdfdffffffffffffffffffffffffffffffjsdjf"; 14 var maxnum=0; 15 var res=null; 16 while(str!=""){ 17 var oldLen=str.length; 18 var news=str.substr(0,1); 19 str=str.replace(new RegExp(news,"g"),""); 20 var newLen=str.length; 21 if(oldLen-newLen>maxnum){ 22 maxnum=oldLen-newLen; 23 res=news; 24 } 25 26 } 27 28 alert("出现最多的是"+res+"共出现了:"+maxnum+"次"); 29 </script> 30 </html>