ToolActToolAct

文字列反転ツール

テキスト文字列を素早く反転、複数反転モード対応

入力内容
文字数: 0
行数: 0
変換結果
文字数: 0
行数: 0

反転方法を選択

文字列反転とは?

文字列反転は、テキスト内の文字順序を逆にする操作です。例えば「Hello」は「olleH」に反転されます。文字列反転には複数のモードがあります:全体反転、単語反転、各行反転など、異なるテキスト処理シーンに適用されます。データ処理、テキスト変換、暗号学の基本操作、文字列アルゴリズムの練習などに一般的に使用されます。 公開文書や多言語コンテンツでは、言語、文字セット、文脈、例外的な表記を確認してから再利用してください。

使い方

基本的な使い方

  1. 反転させたいテキストを左側の入力ボックスに入力または貼り付けます
  2. 反転モード(全体反転、単語反転など)を選択します
  3. 右側に反転結果が自動的に表示されます
  4. 「コピー」で結果をコピー、「入れ替え」で結果を入力としてさらに操作できます

テキストの取り扱い

  • プレーンテキストの反転は簡単ですが、絵文字、結合文字、右から左に記述するスクリプトでは予期しない見た目になることがあります。
  • コード、URL、構造化データの場合は、テキスト全体を対象とせず、目的のセグメントのみを反転してください。

利用シーン

異なる構造レベルでテキストを反転全体文字反転、単語順序反転、各単語反転、各行反転、行順序反転、文順序反転から選択できます。入力が変わると出力は即座に更新され、出力を入力パネルにスワップバックできます。適切なレベルを選ぶことで結果が意味のあるものになります。単語反転はリストの順序を入れ替え、各単語反転は各項目を保ったまま文字だけを反転します。
テキスト変換とエッジケースをテスト文字レベルモードはスプレッド構文を使用し、シンプルなバイト反転よりも多くの Unicode 文字を適切に処理します。行モードと単語モードは選択した変換に応じて空白の異なる部分を保持するため、データ実験に便利です。空行、二重スペース、末尾タブなどの厄介な入力を貼り付けると、各モードが不可視区切りをどう処理するかがわかります。
遊び心のあるテキストや診断用テキストを作成名前、リスト、文、ログ行を反転してパズル、テストデータ、レイアウトチェック、手動比較に活用します。左右のパネルにある行数と文字数で、変換が構造を変えたのか順序だけを変えたのかを確認できます。純粋な反転では入力と出力のカウントが一致するため、数値チェックだけで簡易的なスモークテストになります。
絵文字シーケンスを含む回文を検証フレーズを貼り付けて文字レベル反転に切り替えると、前後どちらから読んでも同じかを確認できます。スプレッドベースのアプローチは複数コードポイントの絵文字や結合アクセントを1単位として保持するため、反転したレインボーフラグの文字列も正しくグループ化されます。真の回文は1回の全体反転で元の形に戻るため、対称に見えるが実はそうでない入力の簡易チェックになります。
グラフィーム認識の絵文字と RTL 双方向テキストを反転「👨‍👩‍👧」(男性・ZWJ・女性・ZWJ・少女からなる家族絵文字)のような入力では、単純なバイト反転はシーケンスを壊れたグリフに分割してしまいます。このツールはグラフィームクラスタ単位で反転するため、家族絵文字は「👧‍👩‍👨」に壊れるのではなくそのまま保たれます。アラビア語やヘブライ語の入力では、レンダラーが視覚的な右から左の順序を保持するため、データレベルでの文字反転は画面上ではまだ反転して見えます。バグと思われる前に、言語レンダリングで結果をテストしてください。

仕組み

文字レベルの反転はスプレッド構文 [...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) を使ってください。

改行は保持されますか?

デフォルトでは改行を含む入力全体が反転されるため、最後の行が先頭になります。「行ごとに個別に反転」を有効にすると、行の順序を保ったまま各行内で反転され、複数行テキストの視覚効果に役立ちます。

反転後のテキストは常に読めますか?

左から右に読む言語(英語、中国語、日本語)は反転すると読めなくなります。右から左の言語(アラビア語、ヘブライ語)は一見読みやすそうに見えますが、双方向アルゴリズムが反転と競合するため、結果的に崩れます。反転は主にコードやパズル的な用途であり、本格的なテキスト変換ではありません。

テキストはアップロードされますか?

いいえ。反転処理はブラウザ内で実行されます。貼り付けたテキストは送信されません。