行を文字数順に並べ替え
watermelon、fig、apple、pear、plumは、fig、pear、plum、apple、watermelonの順になり、文字数は3、4、4、5、10です。同じ4文字のpearはplumより前のままです。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- watermelon fig apple pear plum
- テキスト
- fig pear plum apple watermelon
- 数量
- 5
短い項目から並べると一覧を確認、比較、提示しやすい場合に、行を長さ順へ整理できます。複数行のテキストを貼り付けると、各行のUnicode文字を数え、短い順に配置し、同じ長さの行は元の順序を保ちます。結果にはそのままコピーできるテキストと、各行の測定値を持つ構造化データが含まれるため、手作業の整理にも再現可能な自動処理にも適しています。
短い行から長い行へ並べる仕組み
WindowsのCRLF、改行、復帰で区切られた各部分を1行として扱います。JavaScript内部のUTF-16単位ではなくUnicodeコードポイントを数えるため、一般的な絵文字はサロゲート2個ではなく1文字です。その数を比較して小さい行を先に置き、同数なら元の相対順序を維持します。
この安定した規則により、意味のある既存順序を壊さず、繰り返しても予測可能です。空行は長さ0の有効な行で、末尾改行が作る空部分も先頭へ移動します。空白や句読点は削除せず文字として数えます。
応答には改行で結合したテキストと、行および長さの一覧が含まれます。文字数だけを基準にするため、同数時の五十音順やアルファベット順は追加しません。
入力の準備と結果の読み方
1行、重複、空白だけの行、非ラテン文字、絵文字、混在する改行形式を利用できます。応答のtextは改行形式を統一した整列済みブロックです。linesにはlineとlengthを持つオブジェクトが入り、再計数せず表の作成、上限確認、後続変換ができます。
countは処理行数、methodは処理名です。内容をトリムしないため、空白3個は長さ3です。サロゲートペアは1回、結合文字は別々に数えます。
表示幅、書記素、言語別照合が必要な場合は、その規則に対応する専用ツールをご利用ください。
一覧、コード、表形式データでの活用
長さ順にすると、極端に短い行や長い行から構造を把握できます。見出し、ラベル、キーワード、商品名を短い順に配置し、外れ値を末尾で確認できます。開発ではテストデータ、設定、ログ、コード断片を幅の検査前に整理できます。
独立した表の列なら、空欄、略称、過度に長い値を見つけやすくなります。最後のレコードから最大値を調べたり、同長行の順序が保たれる安定した成果物として保存したりできます。ネットワーク、乱数、時計は使用せず、同じ入力は常に同じ結果です。
隣接列との対応が必要な表では、1列だけでなく完全なレコードを並べ替えてください。
活用例
名前とラベルの整理
短いラベルを先に置き、同じ長さの項目は元の順序を維持します。
コードと設定の確認
断片を文字数順に並べ、長すぎる行を結果の末尾で見つけます。
表の値の検査
独立した列を並べ、内容を変えずに空欄、略称、長い項目を確認します。
よくある質問
何を1文字として数えますか?
Unicodeコードポイントを数えます。一般的なサロゲートペアの絵文字は1文字、結合文字は別々です。
測定前に空白を削除しますか?
削除しません。 先頭と末尾の空白、句読点、その他のコードポイントも長さに含みます。
空行はどう扱われますか?
長さ0として内容のある行より先に置きます。末尾改行も空の部分を1つ作ります。
長い順に並べ替えられますか?
このツールは常に短い行を先頭にします。長い順にしたい場合は、結果の行の順番を逆にしてください。その場合、同じ長さの行は元とは逆の順番になります。
同じ長さの行はどう並びますか?
元のテキストでの順番がそのまま保たれます。アルファベット順などで並べ直すことはないため、同じ入力なら何度実行しても同じ並びになります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/str/sort-lines-length \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"watermelon\nfig\napple\npear"}'const res = await fetch("https://api.kit.forhosting.com/str/sort-lines-length", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "watermelon\nfig\napple\npear"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/sort-lines-length",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "watermelon\nfig\napple\npear"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/sort-lines-length", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"watermelon\\nfig\\napple\\npear"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"watermelon\nfig\napple\npear"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/sort-lines-length", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "watermelon\nfig\napple\npear"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.sort_lines_length",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
入力の準備と結果の読み方
必須フィールドtextに複数行の文字列全体を入れたオブジェクトを送信してください。空文字列は1つの空行として有効ですが、フィールド不足や文字列以外はinvalid_inputです。
一覧、コード、表形式データでの活用
対話的な作業はブラウザーで行え、自動パイプライン内のAPI処理は$0.002です。
技術的な質問
同じ長さの行はどうなりますか?
アルファベット順などを加えず、元の相対順序を保ちます。
API処理の料金はいくらですか?
成功したAPIリクエスト1回は$0.002です。ブラウザー版は対話的な用途に端末内で実行できます。