JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで文字列内の各文字の出現回数をカウントする方法

文字ごとの出現回数をカウントする仕組み

JavaScriptで文字列内に含まれる各文字の出現回数を調べるには、オブジェクト(連想配列)を使って頻度を記録するのが一般的な手法です。基本的な考え方は以下のとおりです。

  • 各文字の頻度を保存するためのオブジェクトを用意する
  • 文字列を先頭から1文字ずつ走査する
  • 同じ文字がすでに記録されている場合はカウントを1つ増やし、初登場の文字なら1をセットする

例として、次の文字列を対象に考えてみましょう。

var sentence = "My name is John Smith";

この文字列には「m」が3回、「i」「s」「n」「h」がそれぞれ2回出現しています。以下が、実際に出現回数をカウントするJavaScriptのコードです。

サンプルコード

var sentence = "My name is John Smith";
sentence = sentence.toLowerCase(); // 大文字小文字を区別しないため小文字に統一
var noOfCountsOfEachCharacter = {};
var getCharacter, counter, actualLength, noOfCount;
for (counter = 0, actualLength = sentence.length; counter < actualLength; ++counter) {
    getCharacter = sentence.charAt(counter);
    noOfCount = noOfCountsOfEachCharacter[getCharacter];
    noOfCountsOfEachCharacter[getCharacter] = noOfCount ? noOfCount + 1 : 1;
}
for (getCharacter in noOfCountsOfEachCharacter) {
    if (getCharacter != ' ')
        console.log("Character=" + getCharacter + " Occurrences=" +
        noOfCountsOfEachCharacter[getCharacter]);
}

コードのポイント

  • toLowerCase():大文字と小文字を同じ文字として扱うため、事前にすべて小文字へ変換しています。
  • charAt(counter):ループ内で現在位置の1文字を取得します。
  • 三項演算子:その文字がすでに登録されていればカウント+1、未登録なら1を代入します。
  • 空白の除外:結果表示時に半角スペースをスキップすることで、文字のみを出力しています。

プログラムの実行方法

Node.js環境で上記のプログラムを実行するには、次のコマンドを使用します。

node fileName.js.

ここでは、ファイル名を demo40.js として保存したものとします。

実行結果

上記のプログラムを実行すると、以下のような出力が得られます。

PS C:\Users\Amit\JavaScript-code> node demo40.js
Character=m Occurrences=3
Character=y Occurrences=1
Character=n Occurrences=2
Character=a Occurrences=1
Character=e Occurrences=1
Character=i Occurrences=2
Character=s Occurrences=2
Character=j Occurrences=1
Character=o Occurrences=1
Character=h Occurrences=2
Character=t Occurrences=1

このように、オブジェクトをキーと値のペアとして活用することで、シンプルなループ処理だけで文字列内の全文字の出現回数を効率よく集計できます。文章解析やデータクリーニングなど、さまざまな場面で応用できるテクニックなので、ぜひ覚えておきましょう。

  1. JavaScriptで文字列を検索する方法【search()メソッドの使い方を解説】

    JavaScriptで文字列を検索する方法 JavaScriptで文字列の中から特定の文字列を探すには、search()メソッドを使用します。このメソッドは、引数に渡した文字列(または正規表現)が対象の文字列内で最初に一致した位置(インデックス)を返し、見つからなかった場合は -1 を返します。 以下は、JavaScriptで文字列を検索するサンプルコードです。 サンプルコード <!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8" />

  2. Androidで文字列内の各文字の出現回数をカウントする方法【サンプルコード付き】

    この記事では、Androidで文字列内に各文字が何回出現するかをカウントする方法を、実際に動作するサンプルコードとともに解説します。EditTextに入力された文字列を解析し、HashMapを使って各文字の出現回数を集計してTextViewに表示する、シンプルなカウントアプリを作成していきましょう。 ステップ1:Android Studioで新規プロジェクトを作成する まずはAndroid Studioで新しいプロジェクトを作成します。メニューから「File」⇒「New Project」を選択し、必要な項目をすべて入力してプロジェクトを作成してください。 ステップ2:レイアウトファイル(act