JavaScriptで文字列内の2番目に短い単語の長さを取得する関数の実装方法
はじめに
本記事では、JavaScriptで文字列の中から2番目に短い単語の長さを返す関数を実装する方法を解説します。引数として文章(文字列)を1つ受け取り、その中の単語を調べて、2番目に短い単語の文字数を出力するのが目的です。
例えば、次のような文字列が与えられた場合を考えてみましょう。
const str = 'This is a sample string';
この文字列の場合、最も短い単語は「a」(1文字)、2番目に短い単語は「is」(2文字)であるため、出力は 2 となります。
コード例
それでは、この関数の実装を見ていきましょう。
const str = 'This is a sample string';
const secondSmallest = str => {
const strArr = str.split(' ');
if(strArr.length < 2){
return false;
}
for(let i = 0; i < strArr.length; i++){
strArr[i] = strArr[i].length;
};
strArr.sort((a, b) => a - b);
return strArr[1];
};
console.log(secondSmallest(str));
コードの解説
この関数がどのように動作しているのか、処理の流れを順番に確認していきます。
- split(' ')による分割:
str.split(' ')で文字列をスペース区切りで分割し、単語の配列を作成します。 - 要素数のチェック: 配列の長さが2未満の場合、2番目の単語が存在しないため
falseを返して処理を終了します。 - 文字数への変換: forループを使って、配列内の各単語をその文字数(数値)に置き換えています。
- 昇順ソート:
sort((a, b) => a - b)により、文字数を数値として昇順に並べ替えます。比較関数を指定しないと文字列としてソートされてしまうため、必ず指定しましょう。 - 結果の返却: ソート後の配列のインデックス1(2番目の要素)を返すことで、2番目に短い単語の長さが得られます。
出力結果
このコードを実行すると、コンソールには次のように表示されます。
2
なお、同じ長さの単語が複数存在する場合でも、ソート後の配列の2番目の値が返されるため、たとえば「is is」のような文字列では2番目の単語も2文字として正しく判定されます。
-
Javaでシーケンス内の2番目に多く繰り返される単語を検索する方法
Javaで文字列のシーケンス(リスト)の中から、2番目に多く繰り返される単語を検索する方法を解説します。以下のコードでは、HashMapを使って各単語の出現回数をカウントし、その中から出現頻度が2番目に高い単語を特定しています。 サンプルコード import java.util.*; public class Demo{ static String second_repeated(Vector<String> my_seq){ HashMa
-
Pythonで文字列の最後の単語の長さを求める方法
文字列の中で最後の単語の長さを求めたい場合、まず文字列から余分な空白を取り除き、先頭から1文字ずつ走査するメソッドを定義します。走査を進めながら単語の長さを数え、最終的に最後の単語の長さを結果として返します。サンプルコード以下に具体的な実装例を示します。def last_word_length(my_string): init_val = 0 processed_str = my_string.strip() for i in range(len(processed_str)): if processed_str[i] == : init_