文カウンタ
「Hello world. This is a second sentence! Is this a third?」は3文と数えられ、1文の平均は18文字です。「!!!」のような連続は1つの文末とみなし、ピリオドのない最後の行も1文に数えます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Hello world. This is a second sentence! Is this a third?
- 文の数
- 3
- 文一覧
- 3
- 平均文長
- 18
- 操作
- sentence_count
文カウンタは編集上の単純な問いに答えます。このテキスト塊には何文ありますか。執筆者、学生、編集者、プロダクトチームはその数を使い、読みやすさの目標確認、マーケ文案の引き締め、短答ドリルの採点、公開前のコンテンツ長ルール検証を行います。この機能は平文を終端句読点—ピリオド・感嘆符・疑問符—について走査し、スクリプトでも無料ブラウザフォームでも信頼できる決定的な文合計を返します。同じ終端記号の連続は1つの終わりとして数え、任意の閉じ引用符を許容し、末尾にピリオドのない最終節も数えるため、くだけたメモが過少カウントされません。空または空白のみの入力は黙ったゼロではなく明確な検証エラーで拒否されます。
文カウンタが文末を検出する仕組み
検出器は平文を歩き、文境界をピリオド・感嘆符・疑問符の集合から成る終端句読点の連続として扱います。感嘆符3つや疑問符の後に省略風のピリオド列が続くような連続も1つの終わりなので、劇的な句読点で合計が膨らみません。終端連続の直後にある閉じ引用符や括弧は許され、新しい文を始めません。
終わりの後、次の非空白文字が次の文の開始です。テキスト最終節に終端記号が全くなくても、その末尾断片は1文を寄与します。これは人がメッセージや箇条書き風メモを、毎行をピリオドで閉じずに書くやり方に合います。
Doctor や Mister のようにピリオドを使う略語は、人間の編集者が望むより早く分割されることがあります。結果は完全な言語解析ではなく、終端句読点の高速合計として扱ってください。教室採点とパイプライン検査では、その正直さが利点です。
どのクライアントも同じ規則集合を見ます。
文数が実務で現れる場面
ライティングコーチと中等教育の国語は、段落や短答に文数目標を設定します。共有カウンタがピア評価と自動採点を揃えます。コンテンツマーケターはA/Bテスト前にランディングのヒーローや商品ブラブの密度を測ります。
同じ語数でも長い3文と短い8文では読み味が違うためです。ローカライズチームは機械翻訳後に落ちた節を捕まえるため、原文と訳文の文合計を比較します。サポートと法務は方針抜粋やチケット雛形をざっと見て、回答をスキャンしやすく保ちます。
プロダクトエンジニアは受け入れ前にフォーム欄・レビュープロンプト・チャットボット訓練例を最小・最大文数でゲートします。後で語と文字の完全内訳、読みやすさスコア、1文への要約が必要なら、この文カウンタに焦点を当てたページを過積載せず、別の検索意図とランディングとして扱ってください。
活用例
作文・宿題の文数目標
提出前に生徒の段落が必要最小文数を満たすか確認し、教師スクリプトが計算するのと同じ合計を使います。
マーケ文案の密度チェック
ヒーロー文・広告・メール冒頭の文数を数え、短文・長文バリアントがブランドの読みやすさルール内に収まるようにします。
翻訳とCMSのQAゲート
パイプラインで原文と訳文の文合計を比較し、公開前に落ちた節や結合された節をフラグします。
よくある質問
文カウンタは文の終わりをどう決めますか?
終端句読点—ピリオド・感嘆符・疑問符—を検出します。それらの連続は1つの終わりとして数えます。連続の後の任意の閉じ引用符や括弧は許容されます。最終マークのない末尾節も1文として数えます。
空のテキストを送るとどうなりますか?
空文字と空白のみは不可です。数えるには空でない文字列を渡してください。
語や文字も数えますか?
いいえ。 このランディングは文合計に特化しています。語・文字・段落・行を1回の応答で得るには、別の語と文字のカウンタを使ってください。
略語は完璧に扱われますか?
いいえ。 略語内のピリオドが文末に見えることがあります。本ツールは決定的な終端句読点カウンタであり完全な言語パーサではないため、結果はクライアント間で安定します。
「。」で終わる日本語の文も数えられますか?
いいえ、文末とみなすのは半角の「.」「!」「?」だけです。「。」で区切った日本語の文章は、全体が1文として数えられます。日本語の文を数えるときは、この点に注意してください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/str/sentence-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello world. This is a second sentence! Is this a third?"}'const res = await fetch("https://api.kit.forhosting.com/str/sentence-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello world. This is a second sentence! Is this a third?"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/sentence-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello world. This is a second sentence! Is this a third?"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/sentence-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello world. This is a second sentence! Is this a third?"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello world. This is a second sentence! Is this a third?"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/sentence-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 world. This is a second sentence! Is this a third?"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.sentence_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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
ページ上の無料ツールと有料APIは同一の純関数を共有し、デモと自動化が同じ文字列で食い違うことはありません。
文カウンタが文末を検出する仕組み
空白のみと空文字は invalid_input で拒否され、呼び出し側が空貼り付けを0文の文書と誤認しないようにします。アルゴリズムは純決定的な文字列走査で、乱数シード・壁時計タイムスタンプ・ネットワーク呼び出し・言語モデルはなく、同一入力は常に同一JSONを生成します。
送信内容と返却内容
必須の文字列フィールド text、または content・body・message・input などの文書化された別名のいずれかを送ってください。契約の例ペイロードは短い3文サンプルで、無料フォームとAPIプローブが同じ動作例を共有します。成功時、応答は元の text をエコーし、主合計として sentence_count を返し、複数形名を好むクライアント向けに同じ整数を sentences に繰り返し、trimmed セグメントの平均文字長 average_sentence_length を含めて異常に長い節を一目で見つけられるようにします。operation フィールドはログと複数ツールのダッシュボード用に常に定数 sentence_count です。text 欠落、空文字、空白のみ、非有限の数値代用、文字列でないオブジェクトは invalid_input で失敗し課金されません。文字上限を超える非常に大きなペイロードは明確な長さメッセージで拒否され、Worker が有界に保たれます。成功したAPI呼び出しの料金は公開ベース$0.002/件で、検証失敗は前払い残高を消費しません。
文数が実務で現れる場面
本能力は純粋なparseエンジンのため、API料金は成功件あたり公開ベース$0.002で、検証失敗は残高を消費しません。
技術的な質問
料金はいくらですか?
ブラウザツールは無料でローカル実行です。APIリクエストは成功件あたり$0.002で前払いKIT残高を使い、無効入力は課金されません。