Jakrta Commons Lang CharSet・CharRange・CharSetUtils(CharのUtil)
■CharSetとは特定のcharacterのグループ(アルファベットのみ等)を作成して特定のcharが含まれるかどうか調べます。
■CharRangeはcharを範囲で指定したものです。a-zとか0-9など
■CharUtilsは条件にあてはまるcharを数えたり、charを除いたり・残した文字列を作成します。
基本的に、細かい指定はできません。細かい指定をしたい場合は正規表現を使うべきです。
Class CharRange
通常ですと指定の範囲のcharを含むRange。
negetedをtrueで渡すと、指定のcharからcharの範囲以外という意味になります。
一つ目はtrue、2つへはfalseを返します。
CharRange ch1 = new CharRange('a', 'z'); System.out.println(ch1.contains('c')); System.out.println(ch1.contains('1')); #br negatedをtrueにした場合 以下のコードは一つ目はfalse、2つ目はtrueを返します。 CharRange ch2=new CharRange('a','z',true); System.out.println(ch2.contains('c')); System.out.println(ch2.contains('1')); #br CharRangeからCharSetを作成したい場合は、 CharSet.getInstance(""+CharRange.getStart()+"-"+CharRange.getEnd())のようにします。(たぶん)
Class CharSet
static fieldに5つのCharSetがある。
■ASCII_ALPHA アルファベットの小文字・大文字
■ASCII_ALPHA_LOWER アルファベットの小文字
■ASCII_ALPHA_UPPER アルファベットの大文字
■ASCII_NUMERIC 0から9の数字
■EMPTY 空のCharSet
インスタンスは、staticなメソッドgetInstance()にCharSet専用の表記法に従って文字列を渡して取得します。
CharSetの表記法
渡された文字列は、一文字づつ処理されます。
ルールは4つあります。
■文字-文字 マイナスで文字と文字を挟んだ場合は、範囲を意味します
■^文字 ^と文字とペアの場合は、指定の文字を含まないという意味です
■^文字-文字 文字と文字との範囲の文字を含まないという意味です。
■文字が続く場合 その文字が含むかどうかです
-や^を含めたい場合、最後に指定します
内部では一文字づつCharRangeになります。
複数同時に渡すことができます。ネストして指定することはできません。
機能
contains(char) 引数のcharを含むかどうか
複数の範囲がある場合、そのいずれかに含まれればtrueを返します。
複雑な処理をしたい場合は、複数のCharSetかCharRangeを作成する必要があります。
getCharRanges()
CharSetに含まれるCharRange[]を返します。
Class CharSetUtils
ユーティリクラスです。
機能
count(String,String)
一つ目のStringに数える対象の文字列
二つ目のStringにはCharSetの表記を指定します。
該当した数を返します。最大で一つ目の文字列の文字数返します。
CharSetやCharRangeを引数に使うことはできません。
count(String,String)
数えます。
指定のcharを含むかどうかの判別にも使えます。
delete(String,String)
削除します。
CharUtils.delete(words,"\s\t\r\n")にて、ホワイトスペースを削除する使い方も可能です。
keep
残します。
squeeze(String,String)
繰り返しを省きます。