文字列反転ツール
テキスト文字列を素早く反転、複数反転モード対応
反転方法を選択
文字列反転とは?
文字列反転は、テキスト内の文字順序を逆にする操作です。例えば「Hello」は「olleH」に反転されます。文字列反転には複数のモードがあります:全体反転、単語反転、各行反転など、異なるテキスト処理シーンに適用されます。データ処理、テキスト変換、暗号学の基本操作、文字列アルゴリズムの練習などに一般的に使用されます。 公開文書や多言語コンテンツでは、言語、文字セット、文脈、例外的な表記を確認してから再利用してください。
使い方
基本的な使い方
- 反転させたいテキストを左側の入力ボックスに入力または貼り付けます
- 反転モード(全体反転、単語反転など)を選択します
- 右側に反転結果が自動的に表示されます
- 「コピー」で結果をコピー、「入れ替え」で結果を入力としてさらに操作できます
テキストの取り扱い
- プレーンテキストの反転は簡単ですが、絵文字、結合文字、右から左に記述するスクリプトでは予期しない見た目になることがあります。
- コード、URL、構造化データの場合は、テキスト全体を対象とせず、目的のセグメントのみを反転してください。
利用シーン
仕組み
文字レベルの反転はスプレッド構文 [...str].reverse().join('') を使用します。スプレッド演算子は文字列をUnicodeコードポイントのシーケンスとして反復し、UTF-16コードユニットを2つ占有するBasic Multilingual Plane外の文字(サロゲートペア)を正しく処理します。素朴な方法である str.split('').reverse().join('') はコードユニットで分割するため、パーティーポッパー🎉(U+1F389)、ロケット🚀(U+1F680)などのU+FFFFを超える絵文字が破損します。 グラフィームクラスタはさらに別のレイヤーを追加します。結合アクセント付きのcafe(a + ◌́)、2つの地域指標子からなる国旗絵文字、ZWJ結合の家族絵文字👨👩👧のように、ユーザーが1文字と認識するものは複数のコードポイントで構成されています。コードポイント単位の反転ではこれらの部品が再配置されるため、家族絵文字は3つの別々の人間の図に分解され、アクセントはベース文字から離れてしまいます。Intl.Segmenterのgranularity: 'grapheme'がグラフィームクラスタを反復し、反転中にこれらのシーケンスを intact に保つ標準準拠の方法です。 操作レベルでは、コストはセグメント数nに対してO(n)です。nは選択したセグメンテーションに応じてコードポイント数またはグラフィーム数です。2回反転すると元の文字列に戻るため、回文チェックに利用できます。Unicode多用の入力では、反転前にNFC正規化(str.normalize('NFC'))を行うと、存在する場合はベース+結合シーケンスが合成済みフォームに折り畳まれ、出力の予期しない結果を減らせます。アラビア語やヘブライ語のようなRTLスクリプトは論理順序で格納されますが、描画は右から左に行われるため、データ順序が反転しても描画上はまだ反転して見えます。
- コードポイント反転:[...str].reverse().join('') はコードポイント単位で反復し、U+FFFF超えのサロゲートペア(ほとんどの絵文字)を保持する
- 素朴なバイトの罠:str.split('').reverse().join('') はUTF-16コードユニットで分割し、U+FFFF超えの文字を破損させる
- グラフィームクラスタ:Intl.Segmenter({ granularity: 'grapheme' }) は結合マーク、フラグシーケンス、ZWJ絵文字👨👩👧を intact に保つ
- 単語レベル反転:split(/\s+/), reverse, join(' ')。各単語内部を保持し、順序のみを反転する
- 計算量:O(n)(n = セグメント数)。2回反転すると元の文字列に戻る
- NFC正規化:str.normalize('NFC') は反転前に、存在する場合は結合シーケンスを合成済みフォームに折り畳む
- 双方向テキスト:アラビア語とヘブライ語は論理順序で格納される。描画方向はブラウザのBiDiレイヤーが担当し、データ反転とは別
使用例
全文字を反転(基本)
モード: 全文字反転
入力: hello world
出力: dlrow olleh
入力: 12345
出力: 54321
入力: A man a plan a canal Panama
出力: amanaP lanac a nalp a nam A単語の反転と各単語内の反転
入力: The quick brown fox
モード: 単語順を反転(語順のみ)
-> fox brown quick The
モード: 各単語内を反転(各単語の文字)
-> ehT kciuq nworb xof回文判定
入力: racecar
全文字反転 -> racecar (同じ、回文)
入力: level
全文字反転 -> level (回文)
入力: hello
全文字反転 -> olleh (回文ではない)Unicode と絵文字に安全
入力: cafe(e に結合用アキュート付き)
素朴な反転: efac (アクセントが文字から外れる)
書記素単位: efac (アクセントが文字に付いたまま)
入力: family-emoji-ZWJ-sequence
素朴な反転: 3 つの絵文字に分裂
このツール: クラスタを保持ログファイルの行順を反転
モード: 行順反転
入力:
2026-06-10 09:00 startup
2026-06-10 09:05 login ok
2026-06-10 09:10 query slow
出力(新しい順):
2026-06-10 09:10 query slow
2026-06-10 09:05 login ok
2026-06-10 09:00 startupよくある質問
文字列の反転とは何をするのですか?
入力した文字を逆順に並べ替えます。例: 'hello' → 'olleh'。ROT-13 風の簡易暗号、回文のチェック、ミラー表示の文字生成、チュートリアルでの配列操作のデモなどに便利です。
絵文字や CJK は正しく反転されますか?
ほとんどの CJK 文字や基本的な絵文字は正しく動作します。ページが UTF-16 のサロゲートペアを扱えるスプレッド演算子([...text])を使用しているためです。ただし、複合的な絵文字シーケンス(家族絵文字、国旗絵文字、肌の色の組み合わせ)は複数のコードポイントから構成されるため、反転時に分離されて崩れる可能性があります。
結合用アクセント記号はどうなりますか?
ベース文字と結合記号で構成される文字(e + 鋭アクセント → é)は1つの書記素として反転されます。分解形式の入力は事前に正規化が必要な場合があります。本ページでは入力時に NFC 正規化を行うことがあります。自然言語の表示結果はどちらでも正しくなります。
反転と鏡像(ミラー)はどう違いますか?
反転は文字順の入れ替えです: 'AB' → 'BA'。ミラーは視覚的な左右反転で、'AB' を ⟨ƎA⟩ のように表示するもので、CSS の transform や特殊文字が必要です。本ページは文字順を反転するもので、ピクセル単位の鏡像化は行いません。鏡文字効果には CSS の scaleX(-1) を使ってください。
改行は保持されますか?
デフォルトでは改行を含む入力全体が反転されるため、最後の行が先頭になります。「行ごとに個別に反転」を有効にすると、行の順序を保ったまま各行内で反転され、複数行テキストの視覚効果に役立ちます。
反転後のテキストは常に読めますか?
左から右に読む言語(英語、中国語、日本語)は反転すると読めなくなります。右から左の言語(アラビア語、ヘブライ語)は一見読みやすそうに見えますが、双方向アルゴリズムが反転と競合するため、結果的に崩れます。反転は主にコードやパズル的な用途であり、本格的なテキスト変換ではありません。
テキストはアップロードされますか?
いいえ。反転処理はブラウザ内で実行されます。貼り付けたテキストは送信されません。