段落を数える
空行をもとにテキストの段落数を数えます。alpha、beta、gammaについての短い3つの段落なら、合計は3です。空行をはさまずに折り返しただけの行は、1つの段落のままです。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
段落カウンターは自由な文章を、エディタ、CMSパイプライン、課題チェックで信頼できる単一の整数に変えます。空でない任意の文字列を貼り付けると、ツールは空行による区切り—ブロック間の1行以上の空行または空白のみの行—を検出し、純粋な空白領域を除いた後に残る空でない段落の数を返します。ブロック内の単独の改行は同じ段落に留まるため、メールやチャットのハードラップが合計を膨らませることはありません。
空行による段落カウントの仕組み
プレーンテキストでは、段落は慣例として、次のブロックから少なくとも1行の空行で区切られた空でない内容のブロックです。このカウンターは文境界やHTMLタグを推測するのではなく、その日常的な定義に従います。まず入力が検査されます。
テキスト欠落、非文字列値、空白をトリムした後に空の文字列は拒否されます。改行は正規化され、WindowsのCRLF、旧MacのCR、UnixのLFが分割前に単一のLF形式になります。分割器は、空またはスペースやタブのみを含む連続した1行以上の行を探し、それらの連なりが区切りです。
残った各ブロックは外側の空白縁をトリムし、空白以外が残れば1段落として数えます。先頭の空行、末尾の空行、ブロック間の二重・三重スペースは空の段落を作らないため、2行の空行で始まる文書でも最初の実ブロックから数え始めます。ハードラップのみ(改行はあるが空行なし)の長いブロックは、見た目の行が何行あっても1段落です。
これは、著者が空行で考えを区切るとき、ほとんどのスタイルガイドやMarkdownエディタが散文を扱う方法と一致します。単語数や文数が必要な場合は専用ツールを使い、このページは空行による段落合計のみを扱います。
実用的なヒント、制限、このツールを使う場面
検索意図が段落数、段落カウンター、またはオンラインでの空行段落合計であるときにこの機能を使います。下書きエッセイを貼り付け、一度変換し、長さの目標の隣に段落合計を学生や編集者に示します。テストの往復チェックは簡単です。
意図的な1スペースのハードラップに注意してください。単独の改行だけでつながった行は1段落のままです。これは折り返しプレーンテキストでは正しく、各見た目の行を独立した段落にしたい場合にのみ誤りです—その場合は先に空行を入れるか行カウンターを使います。
タグ付きHTML/Markdownソースは生文字列の空行を依然として数えます。散文のみのブロックが必要なら先にマークアップを除去します。このページは文カウンターでも単語数ツールでもPDFページやWord統計機能でもなく、空行なしで区切りを発明するNLPトピック分割器でもありません。
それらの指標が必要なときは単語や文字のカウンターを、人がすでに空行で考えを分けており合計だけが必要なときはこの機能を選んでください。文章構造を教えるときは、同じテキストを空行あり/なしで比較し、プレーンテキストで間隔が段落境界をどう定義するかを学習者が見るようにします。
活用例
エッセイと課題の長さチェック
学生が下書きの散文を貼り付け、教員やLMSスクリプトが提出前に課題ルールに対して段落合計を確認します。
テキスト処理の単体テスト
エディタ、メールパーサー、markdownパイプライン向けに、既知の複数段落フィクスチャと空入力の拒否を生成します。
よくある質問
ツールは段落の終わりをどう判断しますか?
空行の区切りで分割します。改行正規化後、連続する1行以上の空行または空白のみの行です。ブロック内の単独改行は同じ段落に留まります。
複数の空行は空の段落を作りますか?
いいえ。 先頭・末尾・繰り返しの空行はカウントで無視され、空でない内容ブロックだけが合計を増やします。
手動で改行した段落は複数に数えられますか?
いいえ。ブロックの中の1回の改行では段落は分かれないため、メールやチャットで折り返された文でも合計は増えません。新しい段落になるのは空行があるときだけです。
空白だけの行も空行として扱われますか?
はい。空白やタブだけの行は、何もない行と同じく区切りになります。下書きに残った見えない空白のせいで、2つの段落がつながることはありません。
HTMLやMarkdownの段落も数えられますか?
元のテキストの空行で数えるので、タグは段落の判断に使われません。文章だけの段落を数えたいときは、先にタグや記号を取り除いてから貼り付けてください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/str/paragraph-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"First paragraph.\n\nSecond paragraph."}'const res = await fetch("https://api.kit.forhosting.com/str/paragraph-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "First paragraph.\n\nSecond paragraph."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/paragraph-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "First paragraph.\n\nSecond paragraph."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/paragraph-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"First paragraph.\\n\\nSecond paragraph."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"First paragraph.\n\nSecond paragraph."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/paragraph-count", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "First paragraph.\n\nSecond paragraph."
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.paragraph_count",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_chars | 100000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
空または空白のみの入力は明確な invalid_input エラーで拒否され、自動化が空白の貼り付けをゼロ成功として扱うことがありません。ライター、教員、QAスクリプト、コンテンツAPIは、フル機能のワープロを開かずに同じ決定的な空行ルールを必要とします。経路は純粋な文字列ロジックであり—ネットワークなし、乱数シードなし、壁時計依存なし—無料のブラウザ実行器と前払いAPIは呼び出すたびに同じJSONを返します。
APIの呼び出し方と応答の内容
真の空行意味論が必要な場合は、改行を事前に潰さず生の文書本体を送ってください。すべてを1行に潰すと1段落になります。エッセイ、リリースノート、複数ブロックのメールを処理するパイプラインは、さらなる分析の前に count で分岐できます。必須の文字列フィールド text(エイリアス input、value、string、s、content、body)を含むJSONボディを送信します。値は空白トリム後に空でない文字列でなければならず、巨大な貼り付けで1リクエストがWorkerやブラウザのメモリを使い果たさないよう、10万文字を超えてはいけません。成功時、応答は送信した元の文字列として input、トリムした作業用文字列として text、同じ整数合計として paragraph_count と count、空行分割後の空でないブロックの順序付き配列として paragraphs、いくつの段落が数えられたかを示す短い要約として message を返します。検証失敗—テキスト欠落、非文字列値、過大なペイロード、トリム後の空内容—は invalid_input を返し、課金されません。料金は成功リクエストごとに固定の $0.002 で、単位は item、限界単価はゼロです。統合時は合計に paragraph_count をアサートし、任意で paragraphs の長さをその合計と比較し、空フォーム送信での invalid_input は請求イベントではなくクライアントの不具合として扱います。
実用的なヒント、制限、このツールを使う場面
空行で区切った短い2行を与え、paragraph_count が2で配列に2件あることを期待し、切れ目のない1ブロックで1を期待し、意図的に空文字やスペースを送って invalid_input と空でない文字列を求めるメッセージを確認します。invalid_input を返す失敗タスクは前払い残高を消費しないため、フォーム検証とCIの否定テストを安く保てます。
連携の活用例
CMSとリリースノートのパイプライン
複数ブロックのリリースノートやブログ下書きを正規化し、各ブロックを公開または翻訳する前に paragraph_count をアサートします。
技術的な質問
空の入力ではどうなりますか?
テキスト欠落、非文字列値、トリム後に空の文字列は invalid_input を返し、課金されません。
単語や文も数えますか?
いいえ。paragraph_count(と count)、paragraphs 配列、短いメッセージのみを返します。単語や文には他のツールを使ってください。
段落カウンターは無料ですか?
ブラウザツールは無料でローカル実行です。API呼び出しは成功リクエストごとに $0.002 の前払いKIT残高を使い、失敗タスクは課金されません。