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

JavaScriptで文字列内の特定の文字を入れ替える方法(kとlの位置をスワップ)

問題

「k」「l」「m」の3種類の文字のみで構成された文字列を受け取るJavaScript関数を作成する必要があります。

この関数の役割は、文字列内の「k」と「l」の位置を入れ替えることです。ただし、「m」はすべて元の位置にそのまま残す必要があります。

解決コードの例

以下がその実装コードです。

const str = 'kklkmlkk';
const switchPositions = (str = '') => {
    let res = "";
    for(let i = 0; i < str.length; i++){
        if (str[i] === 'k') {
            res += 'l';
        } else if (str[i] === 'l') {
            res += 'k';
        } else {
            res += str[i];
        };
    };
    return res;
};
console.log(switchPositions(str));

出力結果

コンソールには次のように出力されます。

llklmkll

コードの解説

この関数では、forループを使って文字列を先頭から1文字ずつ走査し、条件に応じて新しい文字列を組み立てています。

  • 現在の文字が「k」の場合 →「l」に置き換えて結果文字列に追加
  • 現在の文字が「l」の場合 →「k」に置き換えて追加
  • それ以外の文字(この場合は「m」)→ 元の文字をそのまま追加

最終的に組み立てられた文字列を return で返すことで、「k」と「l」だけが入れ替わり、「m」の位置は変わらない新しい文字列が得られます。元の文字列を破壊的に変更するのではなく、新しい文字列を生成するアプローチなので、元のデータを保持したい場面でも安全に使えます。


  1. JavaScript正規表現における\wと\Wの違いとは?

    \w と \W の違い JavaScriptの正規表現において、\w と \W には重要な違いがあります。\w は「単語文字(ワードキャラクタ)」、つまり英数字やアンダースコアにマッチするのに対し、\W は「単語文字以外の文字(ノンワードキャラクタ)」、たとえば & や ^、% などの記号にマッチします。なお、\w は文字クラス [A-Za-z0-9_] と同等、\W はその否定である [^A-Za-z0-9_] と同等と考えると理解しやすいでしょう。以下で詳しく見ていきましょう。 構文1 new RegExp(\\w, g); 上記のコードは、JavaScriptで「単語文字」を検

  2. JavaScriptのエスケープ文字とは?特殊文字のエスケープ方法と一覧を解説

    エスケープ文字とは?エスケープ文字とは、プログラム上で本来意図した意味とは別の特別な意味に解釈されてしまう文字のことです。たとえば、ダブルクォートやシングルクォート、改行コードなどが該当します。こうした文字を「そのままの文字」として扱い、画面に出力したい場合には、直前にバックスラッシュ「\」を付けて記述します。この操作を「エスケープ処理」と呼びます。JavaScriptの主なエスケープ文字一覧コード意味・出力結果\bバックスペース\fフォームフィード\n改行(ニューライン)\rキャリッジリターン\t水平タブ\v垂直タブ\シングルクォート()\ダブルクォート()\\バックスラッシュ(\)バックス