任何人都可以幫助我得到javascript中給定字符串中重複字符的數量。獲取字符串中重複的字符數
例如,
"abccdef" -> 1 (Only "c" repeated)
"Indivisibilities" -> 2 ("i" and "s" repeated)
謝謝
任何人都可以幫助我得到javascript中給定字符串中重複字符的數量。獲取字符串中重複的字符數
例如,
"abccdef" -> 1 (Only "c" repeated)
"Indivisibilities" -> 2 ("i" and "s" repeated)
謝謝
這是一個有趣的問題。我們可以做的是使用String.toLowerCase
將字符串轉換爲小寫字母,然後分割爲""
,這樣我們就可以得到一組字符。
我們會用Array.sort
對它進行分類。經過排序後,我們將使用Array.join
加入。 然後,我們可以使用正則表達式/(.)\1+/g
,這意味着匹配一個字母和後續字母(如果它們相同)。
當我們使用String.match
與規定的正則表達式,我們將得到一個數組,其長度是答案。如果匹配返回null
且結果爲TypeError
,還使用一些try...catch
返回0
。
function howManyRepeated(str){
try{ return str.toLowerCase().split("").sort().join("").match(/(.)\1+/g).length; }
catch(e){ return 0; } // if TypeError
}
console.log(howManyRepeated("Indivisibilities")); // 2
您可以使用這樣
function getFrequency(string) {
var freq = {};
for (var i=0; i<string.length;i++) {
var character = string.charAt(i);
if (freq[character]) {
freq[character]++;
} else {
freq[character] = 1;
}
}
return freq;
};
getFrequency('Indivisibilities');
很酷的做法!謝謝! – devwannabe 2017-08-08 02:50:29
感謝您的回答。如果我傳遞了「abcdef」,它應該返回0,但它顯示一條錯誤消息「TypeError:無法讀取null的屬性'length' – 2015-03-02 10:21:14
@NaveenKrishna現在它應該工作。 – 2015-03-02 10:22:39
Wow優秀的男人,它的作品!簡單而好的答案。 – 2015-03-02 10:29:20