JavaScriptで文字列内の単語を長さの昇順に並べ替える方法
今回は、文字列を受け取り、各単語を文字数(長さ)が短い順に並べ替えた新しい文字列を返すJavaScript関数を作成してみましょう。
このような処理は、split()メソッドで文字列を単語ごとに分割し、sort()メソッドで長さを比較しながら並べ替え、最後にjoin()メソッドで再び結合することで簡単に実現できます。
実装コード例
以下が実際のコードです。
const str = 'This is a sample string only';
const arrangeByLength = str => {
const strArr = str.split(' ');
const sorted = strArr.sort((a, b) => {
return a.length - b.length;
});
return sorted.join(' ');
};
console.log(arrangeByLength(str));コードの解説
処理の流れは以下のとおりです。
1. str.split(' '):元の文字列をスペース区切りで分割し、単語の配列を作成します。
2. sort((a, b) => a.length - b.length):比較関数を使って、単語の長さが短いものから順に並べ替えます。
3. sorted.join(' '):並べ替えた配列をスペースで連結し、1つの文字列に戻します。
出力結果
コンソールには以下のように出力されます。
a is This only sample string
このように、1文字の「a」から始まり、徐々に長い単語へと並べ替えられていることが確認できます。なお、同じ長さの単語が複数ある場合は、元の配列内での順序が維持されるかどうかは環境依存となるため、厳密な安定ソートが必要な場合は注意してください。
-
MySQLで数字を含む文字列を正しく並べ替える方法(ORDER BY・SUBSTR・CAST活用)
はじめにMySQLでは、文字列型のカラムに「A10」「A30」のような数字が混ざったデータが格納されている場合、通常の ORDER BY だけでは文字コード順にソートされるため、「A10、A11、A12…」という数値として自然な順序になりません。この問題を解決するには、ORDER BY 句と SUBSTR() 関数、さらに CAST() 関数を組み合わせます。以下がその基本構文です。SELECT * FROM yourTableName ORDER BYSUBSTR(yourColumnName FROM 1 FOR 2),CAST(SUBSTR(yourColumnName FROM 2)
-
文の単語を文字数の昇順にソートするJavaプログラム
文を構成する複数の単語を、文字数の昇順(短い順)に並べ替えたい場合、Javaでは挿入ソートを利用して簡単に実装できます。ここでは、実際のコード例とともにその仕組みを詳しく解説します。 サンプルコード import java.util.*; public class Demo{ static void sort_elements(String []my_str, int n){ for (int i=1 ;i<n; i++){ String temp =