アキはフリーランスのプログラマーです >> Java >> Jakarta >> Commons >> Lang
Sponsored link

このエントリーを含むはてなブックマーク このエントリーを含むECナビ人気ニュース

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)

繰り返しを省きます。


このエントリーを含むはてなブックマーク このエントリーを含むECナビ人気ニュース