JavaScriptで文字列から空白を削除し、指定した長さのチャンクに分割する方法
問題
1番目の引数として空白を含む可能性のある文字列(文章)、2番目の引数として数値を受け取るJavaScript関数を作成する必要があります。
この関数は、まず文字列からすべての空白文字を取り除き、その後、2番目の引数で指定された長さごとに文字列を分割します。
すべてのチャンクは同じ長さになるようにします。ただし、最後のチャンクだけは例外的に、残りの文字数によって長さが異なる場合があります。
コード例
以下が実際のコードです。
const num = 5;
const str = 'This is an example string';
const splitString = (str = '', num = 1) => {
str = str.replace(/\s/g,'');
const arr = [];
for(let i = 0; i < str.length; i += num){
arr.push(str.slice(i,i + num));
};
return arr;
};
console.log(splitString(str, num));コードの解説
この関数の処理の流れは以下のとおりです。
- 空白の除去: 正規表現
/\s/gを使って、文字列中のすべての空白文字(半角スペース・タブ・改行など)を空文字に置換しています。 - チャンクへの分割: ループ変数
iを指定した長さ(num)ずつ増加させながら、slice(i, i + num)で部分文字列を切り出し、配列に追加していきます。 - 最後のチャンク: 残りの文字数が
numより少ない場合は、slice()が自動的に文字列の末尾までを返すため、最後のチャンクだけ短くなります。
出力結果
コンソールには次のように出力されます。
[ 'Thisi', 'sanex', 'ample', 'strin', 'g' ]
元の文字列「This is an example string」から空白が取り除かれ、「Thisisanexamplestring」となった上で、5文字ずつのチャンクに分割されていることが確認できます。
-
JavaScriptで文字列をできるだけ多くの部分に分割するアルゴリズム
文字列処理のアルゴリズム問題としてよく知られている「Partition Labels」をJavaScriptで解いてみましょう。この記事では、各文字が1つの部分にしか現れないように、文字列をできるだけ多くの部分へ分割する方法を解説します。 問題の定義 まず、文字列 str を引数として受け取るJavaScript関数を作成します。この関数の目的は、以下の条件を満たすように文字列を可能な限り多くの部分に分割することです。 各文字(英字)は、最大でも1つの部分にしか出現しない 戻り値は、各部分の長さを表す整数の配列 例を見てみましょう。 入力: const str = ababcbacade
-
C#でString.Emptyを使って文字列から空白を削除する方法
C#では、StringBuilderクラスのReplace()メソッドとString.Emptyを組み合わせることで、文字列内の空白を簡単に削除できます。この記事では、その具体的な手順をサンプルコード付きで解説します。基本的な考え方まず、対象となる文字列をStringBuilderで設定します。StringBuilder str = new StringBuilder(Tom Hanks);次に、Replace()メソッドを使用して、半角スペース( )をString.Empty(空の文字列)に置き換えます。これにより、文字列から空白が取り除かれます。str.Replace( , String.