基本的な画面構成と初期状態でのテキスト整形
本ツールは,利用者が手軽にテキストの体裁を整えられるよう,画面左側または上部にテキストを入力する領域を設け,対となる位置に処理された結果を表示する領域を配置しています.入力欄に文字を貼り付けたりキーボードから打ち込んだりするだけで自動更新機能が働き,変換ボタンなどを押す手間なく結果欄へ整形後のテキストが反映されます.
この仕組みにより,設定を変更するたびに結果がどう変わるのかを視覚的に確かめながら作業を進めることが可能です.どのような機能なのかを確認したい方のために,あらかじめ用意された文章を入力欄にセットするサンプルボタンも備わっており,手元にテキストがなくても動作を体験できます.
初期設定では,外部からコピーしたテキストの乱れを直すための一般的な項目がオンになっています.具体的には,各行の先頭と末尾にある不要な空白を取り除く各行先頭末尾のトリム,テキスト全体の先頭と末尾にある余分な空白や改行を取り除く全体trim,そして連続する複数の空行をひとつの空行にまとめる連続空行圧縮が有効です.
たとえば,入力欄にスペース二つの後に文字Xを書き,その後に三つの改行を挟んで文字Yを書いたテキストを入れたとします.この初期設定のまま処理を行うと,結果は文字Xという行のあとに空行が一つ入り,その次の行に文字Yが表示されます.行頭の余分なスペースが消え,三つあった改行が二つに減って適切な行間に調整されたことがわかります.
一方で,これら以外の高度な整形スイッチは初期状態でオフに設定されています.行内の全空白削除・全空行削除・半角スペースの圧縮・全角から半角への変換・改行置換などは,元の文章が持つ意味的な区切りや構造を崩してしまう可能性があるためです.よくある整形の初期設定を基本としながら,必要に応じて利用者が手動で機能を追加していく柔軟な設計となっています.
内部における処理の順番と具体的な変換例
テキストを整形する際,スイッチがオンの処理を,次の決まった順番に従って適用します.第一にテキストを改行ごとに分ける分割処理を行い,第二にそれぞれの行の先頭と末尾の空白を取り除く各行トリムを実行します.このとき半角スペースだけでなく,タブ文字や全角スペースも取り除かれます.
第三に連続する半角スペースやタブ文字を一つにまとめる圧縮を行い,第四に全角スペースを半角スペースに変換する処理が続きます.第五に行の内部にあるすべての空白文字を削除し,第六に空行の圧縮や削除といった処理を行います.第七に分割されていた行を再び結合し,第八にテキスト全体の先頭と末尾の空白を削除する全体trimを行います.
最後に第九のステップとして,改行文字を別の文字列に置き換える処理が実行されます.
設定の組み合わせによっては,この処理順序が理由で直感と異なる結果になることがあります.たとえば,連続半角とタブを圧縮する機能と,全角から半角へ変換する機能の両方をオンにしたとします.ここで入力として,文字Aと文字Bの間に全角スペースを二個連続させたテキストを与えます.
内部の処理順序を見ると,第三段階で圧縮が行われますが,この時点ではスペースは全角のままであるため圧縮の対象になりません.次の第四段階で,二つの全角スペースがそれぞれ半角スペースに変換されます.そのため,出力結果は文字Aと文字Bの間に半角スペースが二個残った状態になります.
行内の全空白削除をオンにした場合の例を挙げます.入力として半角スペース,文字C,半角スペース,文字Dのあとに改行を挟み,文字Eを入力した「 C D \nE」を与えたとします.その他が既定設定のままで処理すると,行頭や文字CとDの間の行内スペースは消去されますが,途中の改行は削除対象外として残ります.結果として出力は「CD\nE」の形になります.
テキストの分割では,LFおよびCRLFを基準に行を分け,処理後はLFで結合します.たとえば「A\r\nB」というテキストを入力した場合,既定の各行トリムや全体のトリムを経た結果は「A\nB」です.CRLFの行区切りがLFに統一されるので,元の改行コードを保持したい用途には向きません.
古い形式のCRのみを行区切りとして分割する処理もありません.改行置換を別途オンにすると,この結合後のLFが指定した文字列に置き換わります.
空行の判定条件と改行を別の文字に置き換える処理
テキストの行間を調整する空行処理について解説します.初期状態では連続する空行を一つにまとめる機能がオンで,すべての空行を削除する機能はオフに設定されています.空行の判定は,行単位トリムや行内全空白削除が終わった後に,各行が厳密に空文字かどうかで決まります.たとえば「A」,半角スペース一個だけの行,「B」の三行を入力します.
各行の先頭・末尾トリムを両方オフにし,全空行削除をオン,行内すべての空白削除をオフにした場合,空白だけの行は残ります.一方,行内すべての空白削除もオンにするとその行が空文字になり,全空行削除によって結果は「A」の次の行に「B」が並びます.
既定の設定での動作例を説明します.入力テキストとして,半角スペース二つ,文字A,半角スペース二つを書き,その後に改行を三つ続け,さらに半角スペース,文字B,半角スペースを書き,最後に改行を一つ入れたとします.入力データとしては記号の改行を含めて構成されています.
このテキストを処理すると,文字Aと文字Bの前後にある空白は行トリムで消え,三つの連続した改行は空行圧縮によって一つの空行に整理されます.そしてテキストの末尾にある最後の余分な改行は全体trimによって取り除かれます.結果として出力されるのは,文字Aのあとに改行が二つ続き文字Bで終わる形になります.
これは文字Aという行と文字Bという行の間に,空行が一行だけ挟まった状態です.
改行置換機能をオンにすると,文章中の改行文字が指定の文字列に置き換わります.既定の置換文字列はコンマと半角スペースの組み合わせです.たとえば,文字aのあとに改行を入れ文字bを書いた三文字のテキストを入力すると,改行が置換されて文字a,コンマ,半角スペース,文字bの四文字へと全体の文字数が増加します.
文字数などの統計情報の計算方法と結果の活用
入力欄と結果欄にはそれぞれ個別に,空白を含む文字数,空白を除外した文字数,空白区切りの単語数,行数の統計情報が並んで表示されます.これとは別の変化カードでは,文字数と行数だけを比較表示します.文字数の計算にはJavaScriptのUTF-16単位のlengthが使われるため,実際の字数とずれる絵文字もあります.
サンプルとして「 Word 」という六文字を入力して既定設定で処理すると,結果は四文字になります.ここでの単語数は空白を区切りに数える値で,日本語文の意味上の単語を解析した数ではありません.
「a」の次に改行して「b」と入力し,改行置換をオン,置換文字列をコンマと半角スペースにした時の統計も見てみましょう.空白を含む文字数は3から4へ増えます.空白なし文字数は,入力の改行が空白として除外され,出力に追加されたコンマは残るため2から3へ増加します.行数は2から1へ減り,空白で区切る単語数は両方とも2のままです.文字数の変化カードは+1を示し,行数の変化も表示されます.
処理が終わったテキストは,結果領域にあるコピーボタンを押すことでクリップボードに送ることができます.このボタンは出力された結果が空ではない場合にのみ表示されます.ただし,お使いのブラウザの環境や権限設定によっては,このコピー機能が確実に成功するとは限らない点に留意してください.
変化カードの文字数の差は,減少時には負の数字,変化がない場合には0と表示されます.
動作環境の制約と他のテキスト処理ツールの活用
本ツールはブラウザ上で手軽に使えることを目指して作られていますが,その環境ゆえにいくつか配慮すべき点があります.すべてのテキスト整形処理はブラウザの内部で行われますが,ツールを提供しているウェブサイト自体には一般的なアクセス解析などのプログラムが含まれている可能性があります.そのため,サイトと外部との通信を完全に防ぐ保証は提供できず,機密データを扱う際にはこの環境の特性を考慮する必要があります.
処理にかかる時間についても一定の制約があります.短いテキストであれば短い時間で処理は終わりますが,数万行に及ぶような巨大なテキストを入力した場合,ブラウザのメイン処理に大きな負荷がかかり,画面の操作が重くなることがあります.また,ローカルのファイルを直接アップロードして読み込んだり,結果をファイルとして保存したりする機能はありません.
文字コードのバイト値を直接編集することや,変更箇所を文字単位で色付けして比較する完全な差分ビューアも備わっていません.たとえば,一万行のテキストを入力して処理前と処理後の違いを細かく色分けして見たいと思っても,本ツールでは出力された結果の文字列そのものを確認することしかできません.
このようなツールの限界を補うには,目的に応じて他の関連ツールを使い分けることが有効です.単なる空白の削除ではなく,文章内の特定の単語を別の言葉に置き換えたい場合は,テキスト置換ツールを使用すると任意の語句を変換できます.文字や行数などの原稿分量を別画面で確認したい場合は,文字数カウンターを利用できます.
さらに,大量のリストなどから同じ内容の行を見つけて整理したい場合は,重複行削除ツールを使うことで同じ行を一つにまとめる作業が進めやすくなります.