単語数・文字数カウンター

単語数、文字数、文数、段落数をカウントし、読了時間を推定

サンプルを試す

0

単語数

0

文字数

0

文字数(スペース除く)

0

文数

0

段落数

読了時間

スピーチ時間

テキストを入力

ローカルで実行 · シークレットの貼り付けも安全

単語数カウントとは?

単語数カウンターは、テキストに含まれる単語数・文字数・文数・段落数を表示するツールです。入力をスペースなどの空白文字で分割し、パターンベースのルールで文と段落を検出します。「単語」の定義は言語・文字体系・文脈によって異なります。英語ではスペース区切りのトークンが有効ですが、CJK言語(中国語・日本語・韓国語)では単語間にスペースがなく、ICUのBreakIteratorのような辞書ベースのアルゴリズムが必要です。

文字数カウントには「スペースを含む」と「スペースを除く」の2つの定義があります。合計文字数にはスペース・タブ・改行文字を含むすべてのUnicodeコードポイントが含まれます。スペースを除く文字数はカウント前にすべての空白を除去したもので、Twitter(現X)の投稿文字数制限や、文字単価で請求する翻訳者が使用する指標です。厳格な文字数制限のあるシステムにテキストを貼り付ける際に、この区別は重要です。

読了時間とスピーチ時間の推定は、単語数を平均速度で割ることで算出します。Journal of Memory and Language誌に掲載された研究(Brysbaert, 2019年)では、英語散文の平均黙読速度は1分間238語とされています。プレゼンテーションでの話速は通常1分間130〜160語です。これらの平均値はテキストの難易度・対象読者・言語によって異なりますが、ブログ記事・ドキュメント・スライドの目安として実用的です。

このツールを使う理由

テキストを貼り付けるだけで、アカウント登録やデータ送信なしに、単語数・文字数・文数・段落数をリアルタイムで確認できます。

即時カウント
入力または貼り付けと同時にカウントが更新されます。ボタンをクリックする必要も、読み込みを待つ必要もありません。異なるテキストを続けてすぐにテストできます。
🔒
プライバシー優先の処理
すべてのカウント処理はJavaScriptを使用してブラウザ内で行われます。テキストがデバイスの外に出ることはなく、サーバーへの保存やログ記録も一切ありません。
📊
7つの指標を同時表示
単語数・文字数(スペースあり/なし)・文数・段落数・読了時間・スピーチ時間。一度貼り付けるだけで必要な情報がすべて揃います。
🌍
アカウント・インストール不要
ページを開いてすぐにカウントを開始できます。登録・ブラウザ拡張機能・デスクトップアプリは不要です。モダンブラウザがあればどのデバイスでも動作します。

単語数カウンターの活用例

コンテンツ執筆とブログ
記事の文字数をSEOの目標値と照らし合わせて確認します。Googleは最低文字数を定めていませんが、BacklinkoやAhrefsの調査では、競合キーワードで上位表示されるページは平均1,400〜1,700語であることが示されています。
APIドキュメント
エンドポイントの説明文を一定の長さに保ちます。スタイルガイドで各パラメーターの説明を200文字以内と定めている場合、コミット前にここでテキストを貼り付けて確認できます。
学術論文の準備
学会発表や学術誌への投稿には厳格な文字数制限があります。上限超過による机上却下を避けるため、提出前に単語数を確認しておきましょう。
SNS投稿の下書き
Twitter/Xは280文字、LinkedInの投稿は3,000文字で省略表示、Metaの広告見出しは40文字が上限です。公開前に文字数を確認してください。
DevOpsのコミットメッセージ
Gitコミットメッセージの慣習では、件名行を50文字以内、本文を1行72文字で折り返すことが推奨されています。コミット前に下書きを貼り付けて確認しましょう。
翻訳とローカライゼーション
翻訳者は単語数または文字数で作業料金を算出します。翻訳会社にファイルを送る前に、原文の正確な文字数を把握して見積もりを依頼し、プロジェクトコストを試算できます。

テキスト指標リファレンス

このツールが報告する各指標には固有の定義があります。下の表に各指標の算出方法を示します。

指標算出方法
WordsSequences separated by whitespace"hello world" → 2
CharactersAll characters including spaces"hi there" → 8
Characters (no spaces)Letters, digits, punctuation only"hi there" → 7
SentencesSegments ending with . ? or !"Hi. Bye!" → 2
ParagraphsText blocks separated by blank lines"A\n\nB" → 2
Reading timeWord count ÷ 238 wpm (silent reading avg)1 000 words → ~4.2 min
Speaking timeWord count ÷ 150 wpm (presentation pace)1 000 words → ~6.7 min

単語数 vs. 文字数

この2つの指標は異なる問いに答えます。誤った指標を選ぶと、提出の却下やレイアウトの崩れにつながることがあります。

単語数
スペース区切りのトークン数を測定します。エッセイ・記事・書籍原稿の標準的な指標です。学術誌・ブログプラットフォーム・フリーランス契約の多くは文字数を単語数で定義しています。言語依存性があり、英語500語の段落はドイツ語では700語、中国語では300文字程度になることがあります。
文字数
個々の文字(Unicodeコードポイント)の数を測定します。SNSの文字数制限(Twitter:280文字)・SMSメッセージ(GSM-7では160バイト)・UI文字列、および単語の区切りが存在しないCJKテキストの標準指標です。プラットフォームが「文字数制限」と言う場合、通常はバイト数ではなくコードポイント数を意味します。サロゲートペア(絵文字や一部のCJK文字)は、プラットフォームによって1または2とカウントされることがあります。

コード例

さまざまな言語で単語数と文字数をプログラムで数える方法です。一貫した比較のため、各例では同じ入力文字列を使用しています。

JavaScript
// Word count — split on whitespace, filter empty strings
const text = 'Hello  world!  How are you?'
const words = text.trim().split(/\s+/).filter(Boolean)
console.log(words.length) // → 5

// Character count
console.log(text.length)                          // → 27 (with spaces)
console.log(text.replace(/\s/g, '').length)       // → 22 (without spaces)

// Sentence count — split on sentence-ending punctuation
const sentences = text.split(/[.!?]+/).filter(s => s.trim().length > 0)
console.log(sentences.length) // → 2

// Reading time estimate (238 wpm average)
const readingMin = words.length / 238
console.log(Math.ceil(readingMin)) // → 1 min
Python
import re

text = 'Hello  world!  How are you?'

# Word count
words = text.split()
print(len(words))  # → 5

# Character counts
print(len(text))                              # → 27 (with spaces)
print(len(text.replace(' ', '')))             # → 22 (without spaces)

# Sentence count
sentences = [s for s in re.split(r'[.!?]+', text) if s.strip()]
print(len(sentences))  # → 2

# Paragraph count
multiline = """First paragraph.

Second paragraph."""
paragraphs = [p for p in multiline.split('\n\n') if p.strip()]
print(len(paragraphs))  # → 2
Go
package main

import (
	"fmt"
	"strings"
	"unicode"
)

func main() {
	text := "Hello  world!  How are you?"

	// Word count
	words := strings.Fields(text)
	fmt.Println(len(words)) // → 5

	// Character count (rune-aware for Unicode)
	fmt.Println(len([]rune(text))) // → 27

	// Characters without spaces
	noSpaces := strings.Map(func(r rune) rune {
		if unicode.IsSpace(r) {
			return -1
		}
		return r
	}, text)
	fmt.Println(len([]rune(noSpaces))) // → 22
}
CLI (bash)
# Word count
echo "Hello world" | wc -w
# → 2

# Character count (bytes — use wc -m for multibyte chars)
echo -n "Hello world" | wc -m
# → 11

# Line count
echo -e "line1\nline2\nline3" | wc -l
# → 3

# Count words in a file
wc -w < article.txt
# → 4230

よくある質問

単語数カウンターは「単語」をどのように定義しますか?
このツールはテキストを空白文字(スペース・タブ・改行)で分割し、空でないトークンをカウントします。「well-known」のようなハイフン付きの語は1単語として数えます。これはMicrosoft WordとGoogle Docsの英語テキストでの動作と一致します。CJK言語では、単語間にスペースがないため、空白による分割では実際の単語数が過少評価されます。
読了時間の推定は正確ですか?
この推定はMarc Brysbaertによる2019年のメタ分析(190の研究を対象)に基づき、1分間238語を使用しています。成人が英語のノンフィクション散文を黙読する場合の良い平均値です。コードブロックを含む技術文書はより遅く読まれ(150〜180語/分)、カジュアルなブログコンテンツはより速く読まれます(250〜300語/分)。この数値は目安であり、保証ではありません。
「文字数」と「スペースを除く文字数」の違いは何ですか?
「文字数」にはテキスト内のすべての文字(文字・数字・句読点・スペース・タブ・改行)が含まれます。「スペースを除く文字数」はカウント前にすべての空白を除去します。Twitterのようにスペースが文字数制限に含まれるプラットフォームの上限確認や、スペースが表記体系に含まれないCJK言語の翻訳料金計算では「スペースを除く」カウントを使用してください。
文はどのようにカウントされますか?
ピリオド・感嘆符・疑問符で終わる区切りをカウントします。「Dr.」や「U.S.A.」のような略語はピリオドのたびに一致するため、カウントが増えることがあります。正確な文の分割にはspaCyやNLTKのようなNLPライブラリを使用してください。これらは訓練済みモデルで略語・省略符号・小数点を処理します。
貼り付けなしにファイルの単語数をカウントできますか?
このブラウザツールは貼り付けたテキストのみ対応しています。コマンドラインからファイルの単語数をカウントするには、LinuxまたはmacOSでwc -w filenameを使用してください。Windowsでは、PowerShellで(Get-Content file.txt | Measure-Object -Word).Wordsが使えます。大きなファイルや一括処理にはコマンドラインツールがブラウザベースのカウンターより高速です。
このツールはUnicode文字を正しくカウントしますか?
はい。JavaScriptのstring.lengthはコードポイントではなくUTF-16コード単位をカウントするため、国旗絵文字のような単一の絵文字(複数のコードポイントからなるZWJシーケンス)は予想より多い文字数として報告されることがあります。このツールはブラウザ組み込みの文字列APIと同じカウント方法を使用しています。正確な書記素クラスタのカウントにはモダンブラウザで利用可能なIntl.Segmenter APIを使用してください。
Microsoft WordやGoogle Docsの単語数カウンターとの違いは何ですか?
Microsoft WordとGoogle Docsは英語の単語数カウントに同様の空白ベースの分割を使用しています。ハイフン付きの語・スペースなしの全角ダッシュ・脚注やヘッダーの扱いにより、わずかな差異が生じることがあります。このツールは貼り付けたテキストのみを正確にカウントし、メタデータ・ヘッダー・脚注は含まれません。特定プラットフォームのカウントと正確に一致させるには、同じテキストを両方に貼り付けて比較してください。