テキスト内の特定文字の出現回数を数える
この文字カウンターは、選択した1文字がテキスト内に何回現れるかを正確に調べます。任意の文章を入力し、英字、数字、句読点、空白、記号、絵文字のいずれか1文字を指定して、大文字と小文字を区別するか選択できます。パターン構文や単語単位の隠れた規則はなく、結果は単純な出現回数です。文章の編集、データ確認、学習課題、書式監査、小規模な自動処理にご利用いただけます。
無料で実行
パターン解釈なしで1文字を数えます
一般的な文字数カウンターは文章全体の長さを測りますが、実務では特定の記号だけを確認したい場合があります。ゼロ、コンマ、特定の英字などを調べられます。本機能はテキストを順番に調べ、文字どおりに一致した箇所を加算します。ピリオド、アスタリスク、角括弧も正規表現の命令にはなりません。対象がUnicodeの1文字であれば、空白、改行、アクセント付き文字、絵文字も指定できます。空の本文は0を返します。結果には対象文字と照合方式も含まれるため、保存後も条件を確認できます。
大文字と小文字の扱いを選択できます
初期設定は厳密な照合であり、Aとaを別々に数えます。文頭の大文字などを区別する必要がない場合は、区別しない設定を有効にしてください。この設定はアクセントを削除せず、句読点を正規化せず、見た目が似た記号を同一視しません。処理はUnicodeコードポイント単位で進むため、補助平面の一般的な絵文字も1つの対象として数えられます。大文字と小文字の区別がない文字体系や記号では、通常どちらの設定でも同じ結果になります。
確認作業や自動処理に活用できます
編集者は引用符やダッシュを確認でき、開発者は区切り文字を調査でき、教育現場では文字頻度の課題を検算できます。データ担当者は解析前に区切り記号を確認できます。簡潔な応答なので、期待する上限や下限との比較も容易です。APIリクエストは$0.002で、ブラウザー版は対話的な確認に適しています。計算は外部情報を参照せず、乱数や現在時刻にも依存しません。単語や部分文字列ではなく、必ず1文字だけを指定してください。複数文字の場合は明確な入力エラーになります。
活用例
区切り文字を監査
解析設定の前に、コンマ、タブ、縦線、セミコロンの数を確認します。
学習課題を確認
必要に応じて大文字をまとめるか分けて、指定した英字の頻度を測ります。
書式を検証
テンプレート内の引用符、箇条書き、空白、記号が想定数あるか確認します。
よくある質問
料金はいくらですか?
APIリクエストごとに$0.002です。ブラウザー版は対話的な確認に利用できます。
単語や部分文字列を数えられますか?
いいえ。対象はUnicodeのちょうど1文字である必要があり、複数文字は入力エラーになります。
大文字と小文字は一致しますか?
case_insensitiveがtrueの場合だけ一致します。初期設定では別々に数えます。
空白や絵文字を対象にできますか?
はい。1つのUnicodeコードポイントで表される対象を指定できます。
本文が空の場合はどうなりますか?
対象文字が有効であれば、空の本文は有効であり0を返します。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/text/count-specific-character \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Banana bread","character":"a"}'const res = await fetch("https://api.kit.forhosting.com/text/count-specific-character", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Banana bread",
"character": "a"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/count-specific-character",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Banana bread",
"character": "a"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/count-specific-character", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Banana bread","character":"a"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Banana bread","character":"a"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/count-specific-character", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Banana bread",
"character": "a"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.count_specific_character",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |