獲取字串中重複次數最多的字元

antzone發表於2018-05-20

本章節分享一段程式碼例項,它實現了後去字串中重複次數最多字元的功能。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
var str = "螞蟻部落antzone部落";
var arr = str.split('');
str = arr.sort().join('');
var value = '';
var count = 0;
var resultArr = [];
var re = /([\u4e00-\u9fa5]|\w)\1+/g;
str.replace(re, function (a, b) {
  if (count < a.length) {
    count = a.length;
    value = b;
    resultArr.length = 0;;
    resultArr.push([b, count]);
  } else if (count = a.length) {
    resultArr.push([b, count]);
  }
});
console.log(resultArr);

上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。

一.程式碼註釋:

(1).var str = "螞蟻部落antzone部落",進行演示的字串。

(2).var arr = str.split(''),將字串轉換成陣列。

(3).str = arr.sort().join(''),將陣列排序後再轉換成字串,這樣重複的字元就會都挨在一起。

(4).var value = '',用來存放重複的字元。

(5).var count = 0,用來存放重複的次數。

(6).var resultArr = [],此陣列用來存放查詢結果。

(7).var re = /([\u4e00-\u9fa5]|\w)\1+/g,用來匹配的正規表示式,中英文都適用。

(8).str.replace(re, function (a, b) {  if (count < a.length) {

    count = a.length;

    value = b;

    resultArr.length = 0;;

    resultArr.push([b, count]);

  } else if (count = a.length) {

    resultArr.push([b, count]);

  }

}),對於replace()函式的理解是關鍵。

如果有一個字元重複的次數最多,那麼就將此字元和重複的次數儲存起來。

如果有多個字元重複的次數相同,那麼就將這些字元和重複的次數儲存起來。

二.相關閱讀:

(1).split()參閱javascript split()一章節。

(2).sort()參閱javascript sort()一章節。

(3).join()參閱javascript join()一章節。

(4).replace()參閱正規表示式replace()函式一章節。

(5).反向引用參閱正規表示式引用型分組反向引用一章節。

相關文章