はじめに
事前に準備する外部ライブラリ等はありません。
実装例
サンプルでは、動作確認しやすいようにmainメソッドで実行できるようにしてあります。
結果だけを確認したい場合は、この記事の一番下のリンク先で使えるようにしてありますのでご覧ください。
StringCounter.java
import java.io.UnsupportedEncodingException;
/**
*
* @author tool-taro.com
*/
public class StringCounter {
public static void main(String[] args) throws UnsupportedEncodingException {
//カウントしたい文字列
String source = "タロウ\n タロウ ";
//カウント方法(Count/UTF-8/Shift_JIS/JIS/EUC_JP)
String method = "Count";
//カウント処理
int stringCountWithSpace;
int stringCountWithoutSpace;
int returnCount = 0;
//スペースあり+改行なしの文字
String stringWithSpace = source.replaceAll("\n", "");
//スペースなし+改行なしの文字
String stringWithoutSpace = source.replaceAll("\\s| ", "");
//行数カウント
for (int i = 0; i < source.length(); i++) {
switch (source.charAt(i)) {
case '\n':
returnCount++;
break;
}
}
returnCount++;
//文字数・バイト数カウント
switch (method) {
case "Count":
stringCountWithSpace = stringWithSpace.length();
stringCountWithoutSpace = stringWithoutSpace.length();
break;
default:
stringCountWithSpace = stringWithSpace.getBytes(method).length;
stringCountWithoutSpace = stringWithoutSpace.getBytes(method).length;
break;
}
//標準出力
System.out.format("文字数/バイト数(スペース込み)=%1$d, 文字数/バイト数(スペース無視)=%2$d, 行数=%3$d, ", stringCountWithSpace, stringCountWithoutSpace, returnCount);
}
}
[/java]
動作確認
$ javac StringCounter.java $ java StringCounter $ 文字数/バイト数(スペース込み)=8, 文字数/バイト数(スペース無視)=6, 行数=2
環境
- 開発
- Windows 10 Pro
- JDK 1.8.0_74
- NetBeans IDE 8.1
- 動作検証
- CentOS Linux release 7.2
- JDK 1.8.0_74
上記の実装をベースにWebツールも公開しています。
文字数・バイト数カウント(String Count)|Web便利ツール@ツールタロウ