commonsで文字列内の文字をカウント
メモです。
文字をカウントするユーティリティがないかと探したらあった。
package sandbox;
import junit.framework.TestCase;
import org.apache.commons.lang.CharSetUtils;
public class CharSetUtilsTest extends TestCase {
public void test改行を数えます() throws Exception {
String str1 = "開業改行\n改行";
System.out.println(str1);
assertEquals(CharSetUtils.count(str1,"\n"),1);
}public void test改行を数えます2() throws Exception {
String str2 = "開業改行\n\n\r改行";
assertEquals(CharSetUtils.count(str2,"\n\r"),1);
}
}
ただ上記だとtest改行を数えます2がエラー
junit.framework.AssertionFailedError: expected:<3> but was:<1>
at junit.framework.Assert.fail(Assert.java:47)
at junit.framework.Assert.failNotEquals(Assert.java:282)
at junit.framework.Assert.assertEquals(Assert.java:64)
at junit.framework.Assert.assertEquals(Assert.java:201)
at junit.framework.Assert.assertEquals(Assert.java:207)
at sandbox.CharSetUtilsTest.test改行を数えます2(CharSetUtilsTest.java:32)
ん〜。どうやら\nと\rが文字列の中に何個あるかを数えてるな。
\n\rを一つの文字列としてカウントしてくれないかな?