統計字符串中每個字符的個數(js中數組的特殊用法)

題目描述:
給定一個由大小寫字母構成的字符串,輸出其每個字符出現的次數。(不區分大小寫)
這道題思路很簡單,直接用一個數組來記錄。(其中數組下標表示字符,數組值記錄其出現的次數即可)
下面給出Java版本的代碼:

public static void main(String args[]) {
        String str = "abhjbfahjafnojkla";
        getCount(str);
    }

    private static void getCount(String str) {
        str = str.toLowerCase();
        int[] arr = new int[26];
        for (int i = 0; i < str.length(); i++) {
            arr[str.charAt(i) - 'a']++;
        }
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] != 0) {
                System.out.println((char) (i + 'a') + "有" + arr[i] + "個");
            }
        }
    }

結果如下:
在這裏插入圖片描述

Java語言有字符這個類型,所以解決此題輕而易舉,但是由於js中沒有字符這種數據類型只有字符串。從而用js代碼來解決此題就需要略微調整思路。
這裏就需要藉助js中獨特的兩點:

  1. js中可以使用字符串作爲下標
  2. js中有很強的數據類型間的轉換

所以相比於Java實現思路,這裏我們只需要把每種字符看成單元素的字符串作爲數組的下標來巧妙的避免了無字符的缺陷。
js版本代碼如下:

function getCount(str) {
            //JS中可以使用字符串作爲下標
            str = str.toLocaleLowerCase();
            var arr = new Array();
            for (var i = 0; i < str.length; i++) {
                var key = str[i];
               //number轉boolean
                arr[key] ? arr[key]++ : arr[key] = 1;
            }
            for (var key in arr) {
                console.log(key + "有" + arr[key] + "個");
            }
        }
        var str = "abhjbfahjafnojkla";
        getCount(str);

結果如下:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章