JavaScriptで文字列内のスペースの数を数える方法
JavaScriptでは、スペースを含む文字列を受け取り、その中に含まれるスペースの数を数える関数を作成する必要がある場面があります。ここでは、その実装方法を解説します。
例として、以下のような入力文字列が与えられた場合を考えます。
const str = 'this is a string';
この場合、期待される出力は次のとおりです。
const output = 4;
forループを使った基本的な実装
最もシンプルな方法は、文字列を1文字ずつ確認し、スペースが見つかるたびにカウントを増やすことです。
const str = 'this is a string';
const countSpaces = (str = '') => {
let count = 0;
for (let i = 0; i < str.length; i++) {
const el = str[i];
if (el !== ' ') {
continue;
}
count++;
}
return count;
};
console.log(countSpaces(str));出力結果
このコードを実行すると、コンソールには次のように出力されます。
4
split()メソッドを使った別のアプローチ
forループを使わずに、split()メソッドを利用することでも同様の結果が得られます。スペースで文字列を分割すると、配列の要素数から1を引くことでスペースの数が求まります。
const countSpacesWithSplit = (str = '') => {
return str.split(' ').length - 1;
};
console.log(countSpacesWithSplit(str)); // 4正規表現を使った方法
また、正規表現とmatch()メソッドを組み合わせる方法もあります。連続するスペースも正確にカウントできるため、柔軟な対応が可能です。
const countSpacesWithRegex = (str = '') => {
const matches = str.match(/ /g);
return matches ? matches.length : 0;
};
console.log(countSpacesWithRegex(str)); // 4まとめ
- forループによる1文字ずつの判定:処理の流れが分かりやすい基本の方法
- split()を使う方法:コードが短く簡潔になる
- 正規表現を使う方法:タブなど他の空白文字もカウントしたい場合に拡張しやすい
用途や可読性の要件に応じて、これらの方法から適切なものを選択するとよいでしょう。
-
JavaScriptで2つの文字列間のハミング距離を計算する方法
ハミング距離とは?ハミング距離(Hamming Distance)とは、同じ長さを持つ2つの文字列のうち、互いに異なる文字が現れる位置の数を表す指標です。言い換えれば、一方の文字列をもう一方の文字列へと変換するために最低限必要な置換の回数ともいえます。ハミング距離は情報理論やエラー検出・訂正の分野で広く活用されており、通常は同じ長さの文字列同士に対して測定されます。本記事では、同じ長さの2つの文字列 str1 と str2 を受け取り、それらのハミング距離を計算して返すJavaScript関数を作成します。実装コード以下がその実装例です。 { let distance = 0; if
-
JavaScriptで文字列の最小削除回数を求める方法
問題の概要例えば、次のようなバイナリ文字列(「0」と「1」だけで構成された文字列)があるとします。const str = 001001;私たちの課題は、このような文字列を唯一の引数として受け取るJavaScript関数を作成することです。関数の役割は、入力された文字列に対して隣り合う2つの文字が同じにならないようにするために必要な最小削除回数を計算し、その結果を返すことです。例えば、上記の文字列の場合、出力は次のようになります。const output = 2;これは、インデックス0と3にある「0」を削除すると、新しい文字列が「0101」となり、隣接する文字がすべて異なる最長の文字列になるため