文字数カウントツール
テキストの文字数、単語数、行数、段落数などをリアルタイム統計
基本統計
構造統計
読書予測
文字数カウントとは?
文字数カウントツールは、テキストの各種統計データをリアルタイム計算します。文字数、単語数、行数など。記事、論文、コードコメント、SNSコンテンツなど、テキストの基本情報を素早く把握できます。本ツールは日英混合統計に対応し、日本語文字と英単語をスマートに識別し、それぞれカウントします。読書時間予測も提供し、読者がコンテンツを読むのにかかる時間を把握できます。
使い方
基本操作
- 左のテキストボックスにテキストを入力または貼り付けます
- 統計は右側のパネルでリアルタイムに更新されます
- 必要に応じてオプションを調整します(句読点、改行など)
- テキストのクリア、貼り付け、コピーはいつでも可能です
カウントルール
- 合計文字数:スペース、句読点、改行を含むすべての文字
- 漢字数:漢字(CJK)の文字をカウント
- 英単語:文字で構成された単語をカウント
- 段落:空行で区切られた空でないテキストブロック
- 読了時間:中国語は350文字/分、英語は225単語/分で計算
利用シーン
仕組み
単語カウントはUnicode空白文字での分割を行います。ラテン文字体系では `text.trim().split(/\s+/).filter(Boolean)` に近い正規表現を使用し、ASCIIスペース、タブ、改行、U+00A0(ノーブレークスペース)やU+2028(行セパレータ)などのUnicode区切り文字に一致します。このルールは英語、フランス語、ドイツ語などのスペース区切り言語に有効ですが、中国語、日本語、タイ語のように単語間に空白がない言語では適用できません。CJKテキストは文字単位でカウントされ、`text.length` ではなく `[...text].length` を使用します。スプレッド演算子はUnicodeコードポイントを反復処理し、U+FFFF以上の文字(CJK統合漢字拡張B(U+20000以降)やU+1F300以降の多くの絵文字)のサロゲートペアを正しく処理します。CJK文字クラス自体はUnicodeプロパティエスケープ `/\p{Script=Han}/u` で検出されます。 JavaScriptの文字列の `length` プロパティはUTF-16コードユニット数を返し、文字数ではありません。`'👨👩👧'.length === 8` ですが、実際のグリフはU+200D(ゼロ幅接合子)で結合された3つの絵文字からなる1つのグラフィームクラスタです。正確なカウントには2023年以降すべてのモダンブラウザで利用可能な `Intl.Segmenter('en', { granularity: 'grapheme' })` を使用します。CJKを含む任意の言語での単語レベルのセグメンテーションには `Intl.Segmenter(locale, { granularity: 'word' })` がUnicode Standard Annex #29に従い、利用可能な場合は最も正確なオプションです。文の境界は `[.!?…。!?]+` に空白または文字列末尾が続くパターンで検出し、段落は2つ以上の連続する改行(`/\n\s*\n/`)で検出します。 読書・話速の推定には公開された読書速度定数を適用します。Brysbaert(2019)のメタ分析によると、成人の黙読速度は英語ノンフィクションで1分間に238語であり、これが225〜250 wpmが一般的なUIデフォルト値となる根拠です。中国語の黙読速度は平均350〜500文字/分です。話速はより遅く、TEDトークの平均は163 wpm、オーディオブックのナレーションは150〜160 wpmが目標です。Twitterの280文字制限では `twitter-text` ライブラリを通じてCJK文字とほとんどの絵文字を重み付き2文字としてカウントし、地域インジケータペア(国旗絵文字)は生の `.length` でUTF-16コードユニット4つとしてカウントされます。
- 空白による単語分割:`text.trim().split(/\s+/).filter(Boolean)` はラテン文字体系で有効。単語間に空白がないCJKやタイ語では失敗する
- CJK文字カウントは `[...text].length` でUnicodeコードポイントを正しく反復処理(U+FFFF以上のサロゲートペア、拡張漢字や絵文字に対応)
- `string.length` はUTF-16コードユニット数を返し、グラフィーム数ではない。👨👩👧の家族絵文字は `.length === 8` だが表示上は1文字
- 最も正確なセグメンテーション:`Intl.Segmenter(locale, { granularity: 'word' | 'grapheme' })` がUnicode Standard Annex #29を実装
- 読書速度のデフォルト値:英語は黙読225〜250 wpm(Brysbaert 2019)、中国語は350〜500文字/分。話速はナレーション150〜160 wpm、TED平均163 wpm
- 文の分割:`[.!?…。!?]+\s+`、段落分割:`\n\s*\n`、行数:`text.split('\n').length`
- Twitterは `twitter-text` によりCJKとほとんどの絵文字を280文字制限に対して重み付き2文字としてカウント。国旗絵文字(地域インジケータペア)は生のUTF-16で `.length === 4`
使用例
短い英文
入力: Hello world, this is a test.
総文字数: 28
文字数 (空白除く): 23
単語数: 6
文の数: 1
読了時間: ~2 秒 (225 wpm)中英混在のテキスト
入力: Hello 你好世界, this is ToolAct.
総文字数: 28
中国語文字: 4 (你好世界)
英単語: 4 (Hello, this, is, ToolAct)
数字: 0Twitter の 280 文字制限内の投稿
下書き: Launching a new browser-only toolbox today — 112 dev tools,
zero uploads, zero tracking. Check it out at toolact.com.
総文字数: 124 (Twitter の 280 文字制限内)
単語数: 22
行数: 25 分間スピーチの目安
原稿: ~750 英単語
読了時間: 3 分 20 秒 (黙読 225 wpm)
スピーチ時間: 5 分 0 秒 (発話 150 wpm)
段落数: 5 | 文の数: 42SEO メタディスクリプションの長さ確認
Title: "ToolAct - 112 Online Developer Tools, Free and Private"
-> 56 文字 (Google の表示は約 60)
Description: "Format JSON, convert timestamps, generate cron expressions,
and run 100+ more dev tools right in your browser. No uploads."
-> 148 文字 (Google の表示は約 155)よくある質問
このカウンターでは何を計測しますか?
総文字数、スペースを除く文字数、漢字、英単語、数字、行数、段落数、文の数、推定読了時間・発話時間です。入力やペーストに合わせてリアルタイムで更新されます。
「単語」はどのように定義されていますか?
英単語は空白で区切られた文字の連続です。漢字は CJK Unicode 範囲で検出され、1文字ずつカウントされます。数字や記号は総文字数に含まれます。
読了時間はどう計算されますか?
デフォルトは1分あたり200〜250語で、成人の黙読速度の平均です。発話速度はより遅く(約150 wpm)、流し読みはより速く(300〜400 wpm)なります。この数値はあくまで概算で、実際の時間は内容の密度や読者の経験によって変わります。
絵文字や特殊文字もカウントされますか?
はい。ただし 😀 のような絵文字は JavaScript の文字列長では複数の UTF-16 コード単位として数えられます。本カウンターはテキストに表示される可視文字としてカウントします。
行数と段落数が異なるのはなぜですか?
行は1つの改行(Enter を1回)で区切られます。段落は空行(Enter を2回)で区切られます。ワープロソフトは通常、段落をカウントし、コードエディターは行をカウントします。本ページでは両方を表示しており、必要なものを選べます。
URL やコード内の文字もカウントされますか?
はい。空白以外はすべてカウントされます。文章のみ(URL、コードブロック、引用を除く)をカウントしたい場合は、ペースト前に手動でそれらを取り除いてください。一部のページでは、構文文字を無視する「Markdown 対応」モードが用意されています。
テキストはアップロードされますか?
いいえ。カウントはブラウザ内で行われます。ペーストしたテキストは送信されません。