行数カウント
Hello、空の行、World、末尾の改行からなるテキストは4行で、内容のある行が2行、空行が2行です。Windows、Unix、古いMacの改行をすべて認識し、1つの改行は1回だけ数えます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Hello World
- 合計行数
- 4
- 非空行
- 2
- 空行
- 2
- 行
- 4
行数カウントは小さなユーティリティですが、何を改行とみなすか、末尾の改行が余分な空行を生むか、空白のみの行をどう分類するかという明確な契約が必要です。この行カウンタは空でないテキストを受け取り、復帰、改行、CRLF対で分割し、合計行、空白以外を含む非空行、トリム後に空になる空行を報告します。
行数の意味と空行と非空の判定
行数カウントは検索に打ち込まれる三つの関連質問に答えます:このテキストは何行か、そのうち実際に内容がある行は何行か、空は何行か。この機能は行を行終端子の間のセグメントと定義します。終端子は復帰、改行、またはWindows風の復帰+改行対を単一の区切りとして扱い、CRLFファイルを二重カウントしません。
分割後、各セグメントを分類します。トリムで先頭末尾の空白を除いて何か残れば非空—文字、数字、句読点、その他の可視文字。セグメントが空、またはトリム後に空なら空行で、純粋な空白、タブ、段落間の完全に空の行を含みます。
合計は構成上、非空+空と等しく、テストでその同一性を断言できます。改行のない一行文字列は内容があれば合計1・非空1です。改行で終わる文字列は末尾の空セグメントを生み、多くのエディタやログツールがファイル末尾に余分な空行を示すのと一致します。
テキストの行数、空行、オンラインでの非空行合計という検索意図ではこの行数計算機を使ってください。単語数や文字数が主製品約束の場合、バイナリのバイト長が必要な場合は別ランディングです。
活用例
下書きとmarkdownの間隔確認
ライターと編集者はブログ投稿やREADME公開前に下書きを貼り、合計行と空のスペーサ行を見ます。
ログとサポート貼り付けの監査
サポートツールが顧客貼り付けの非空ログ行を数え、ローカルシェルを入れずに空行ノイズを報告します。
よくある質問
textが空だとどうなりますか?
長さゼロは拒否され課金されません。空白のみは許可され空行として数えられます。
末尾の改行は余分な行として数えますか?
はい。 改行で終わるテキストは末尾の空セグメントを含むため、totalが1増えblankも1増えます。
CRLFとLFはどう扱われますか?
復帰、改行、CRLF対はすべて行区切りとして扱われます。CRLFは単一区切りなのでWindows風ファイルは二重カウントされません。
空白だけの行は空行として数えますか?
はい、何もない行や空白とタブだけの行は空行です。文字、数字、記号が1つでもあれば内容のある行になります。空白だけのテキストも受け付け、すべての行を空行として数えます。
内容のある行と空行を足すと必ず合計になりますか?
はい、どの行も内容のある行か空行のどちらかなので、必ず合計と一致します。例では4行が内容のある2行と空行2行に分かれ、結果をすぐに検算できます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/str/line-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello\n\nWorld\n"}'const res = await fetch("https://api.kit.forhosting.com/str/line-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello\n\nWorld\n"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/line-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello\n\nWorld\n"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/line-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello\\n\\nWorld\\n"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello\n\nWorld\n"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/line-count", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Hello\n\nWorld\n"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.line_count",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
応答は安定したJSONで、テストに固定したりフォームに載せたりSDKから呼び出したりでき、各言語でワンライナーを書き直す必要がありません。空入力はinvalid_inputで失敗し、パイプラインが誤って長さゼロのペイロードを保存しないようにします。
入力契約、空の拒否、応答フィールドの読み方
空白のみのテキストは許可され、空入力ではなく、すべて空行として正しく報告されます。ソーステキストは他のKIT parse項目と同じ保持規則に従います。Worker分離向きの通常メッセージ・文書サイズに留め、複数メガのダンプは避けてください。これはテキストユーティリティであり一括ファイル倉庫ではありません。必須文字列フィールドtextに測りたい非空サンプルを入れたJSON本体を送ります。古いクライアントやフォーム生成が使う別名input、value、s、content、bodyも受け付けます。text欠落、非文字列、長さゼロ文字列は問題を名指しするメッセージ付きでinvalid_inputを上げ、プリペイドAPIでは課金されません。成功時、応答は行セグメント数total、内容行数non_empty、空または空白のみの行数blank、便利な別名lines(totalと同値)、non_empty_lines(non_emptyと同値)、empty_lines(blankと同値)を含み、SDKのフィールド名の違いを余分な糊なしで対応できます。character_countは元文字列のUTF-16長で、行統計の横の素早いサイズ確認に使います。originalは正確な入力をエコーし、UIがペイロードを再保存せず前後表を示せます。methodは常にline_countで、下流が形を嗅がずに分岐できます。進捗バーが行数だけならtotalのみ、課金や採点で空白スペーサを無視するならnon_empty、スタイルガイドやリンタ風チェックがブロック間の空行を気にするならblankを使います。
API利用、料金、ワークフロー、実務上の制限
宿題チェック、paste-bin監査、ログプレビュー、空行の素早い見直しに、wcを入れたり各言語でスクリプトを書かずに無料のブラウザ行数ツールを呼び出します。典型フローは下書きmarkdownを貼り、節間の空行を数え、公開前に間隔を詰めます。次が行ごとの二版比較ならdiffや整形ツールと組み合わせつつ、行数カウントは独自ランディングに保ち、count-lines検索意図を全ファイル統計やPDFページ数と混ぜないでください。単語数、文分割、言語対応段落検出は別問題でSEO語も別です。CMS、コンテンツパイプライン、QAハーネス、モバイルクライアントが同じ契約を残高下で必要ならプリペイドKIT APIを使い、成功アイテムごとに$0.002、検証失敗はエンジン拒否後に残高を消費しません。SDKを出荷する著者はtextのみ必須と文書化し、複数行成功例と空文字エラー例を示して契約の両面を見せられます。
連携の活用例
CIとコンテンツパイプラインのfixture
ビルドスクリプトが行数のgolden出力を固定し、CRLF誤処理や空入力回帰がCIを即失敗させます。
技術的な質問
このツールでテキストの行数を数えるには?
空でない文字列をtextに入れたJSONを送ります。応答はtotal、non_empty、blankの件数と別名、character_countを返します。
行カウンタは無料ですか?
ブラウザツールは端末上で無料です。APIは成功アイテムごとに$0.002のプリペイドKIT残高を使い、検証失敗は課金されません。