JSは文字列の中で一番多い文字を得ました.
1735 ワード
<script type="text/javascript">
<!--
var str ="adadfdfseffserfefsefseeffffftsdg"; //
var maxLength = 0; // 0
var result = ''; //
while (str != '')
{ // ,
oldStr = str; //
getStr = str.substr(0,1); // substr ( )
eval("str = str.replace(/"+getStr+"/g,'')"); //
if (oldStr.length-str.length > maxLength)
{ //
maxLength = oldStr.length-str.length; //
result = getStr + "=" + maxLength; // ( 、 )
}
}
alert(result); //
//-->
</script>
文字列の最初の文字(頭文字)を取り出し、利用した文字列のreplace方法は正則表現(最初の文字)を空に置き換え、この文字の出現回数は元の文字列の長さから置換後の文字列の長さを減算するという考えです.繰り返します.一番長い文字を探します.eval(「str=str.replace(/」+getsStr+「/g、')」)というように、str=str.replace(/getsStr/g))を書きたいという人が多いかもしれませんが、結果としては間違いがあります.なぜかというと、この文では正則表現がマッチするのはget Str文字列であって、getsStrが指す頭文字ではない.eval方法によって避けることができます.(まずgetStrが指し示したイニシャルは、「str=str.replace(/)」+getStr+"/g)」と文字列で接続し、最後にevalでこのコードを実行します.つまり、Javascriptコードを説明してから実行します.
エヴァは性能が悪いので、間違えやすいし、可読性が悪いです.eval("str=str.replace(/"+getsStr+"/"g")")をstr=str.replace(new RegExp(getsStr),"に変更することを提案します.