Javaでは、文字列データを扱うクラスにCharacter,String,StringBuffer,StringBuilder(Java5より)が提供されています。
プリミティブ型のchar型のラッパークラスであるCharacterクラスについて説明します。
Oracle社Java8APIもご参照下さい。
Characterクラスは、'a','z'などのUnicodeで表現できる単一文字を格納するクラスです。
一度生成されたCharacterクラスの値を変更することができない性質があります。
new Character( char型 );
Characterオブジェクトの生成
Character token = new Character(',');
chart型とCharcterクラスの使い分けについて説明します。
Characterのインスタンスメソッドで利用頻度の高いメソッドについて説明します。
インスタンスメソッドの利用方法
char a = 'あ';
Character aObj = new Character( a );
戻り値型 変数名 = aObj.メソッド名( 引数がある場合引数 );
戻り値 | メソッド | 説明 |
---|---|---|
char | charValue() | インスタンスに格納されているchar型の値を返します。 |
int | compareTo( Character ) | メソッドを実行したインスタンスのcharと引数のcharを数値として比較します。 値が等しい場合には、0を返します。 引数の方が小さい値には、正の整数を返します。 引数の方が大きい値には、負の整数を返します。 |
boolean | equals( Character ) | このインスタンスが保持しているchar型の値と指定されたオブジェクトの値が等しいか比較します。 等しい場合には、trueを返します。 異なる場合には、falseを返します。 |
String | toString() | インスタンスの保持しているchar型の文字をStringオブジェクトにして返します。 |
インスタンスメソッドのサンプル
Character aObj = new Character( 'a' );
Character bObj = new Character( 'a' );
Character cObj = aObj;
if( aObj.equals( bObj ) ){
System.out.println("値は一致しています。");
} else {
System.out.println("値は一致していません。");
}
if( cObj == bObj ){
System.out.println("インスタンスは一致しています。");
} else {
System.out.println("インスタンスは一致していません。");
}
文字列の比較には、equalsを利用します。 == はインスタンスが同一であるかの比較です。
Characterのクラスメソッドで利用頻度の高いメソッドについて説明します。
クラスメソッドの利用方法
char a = 'あ';
Character aObj = new Character( a );
戻り型 変数 = Character.クラスメソッド( 引数 );
戻り値 | メソッド | 説明 |
---|---|---|
boolean | isDigit( char ) | 引数のcharが数字かどうか判定します。 数字の場合には、trueを返し、異なる場合にはfalseを返します。 |
boolean | isLetter( char ) | 引数のcharが英文字かどうか判定します。 英文字の場合には、trueを返し、異なる場合にはfalseを返します。 |
boolean | isLetterOrDigit( char ) | 引数のcharが英文字又は数字かどうか判定します。 英文字又は数字の場合には、trueを返し、異なる場合にはfalseを返します。 |
char | toLowerCase( char ) | 引数のcharを小文字に変換します。 |
char | toUpperCase( char ) | 引数のcharを大文字に変換します。 |
boolean | isWhitespace( char ) | 引数のcharが空白文字が判定します。 引数のcharが空白文字の場合にはtrueを異なる場合にはfalseを返します。 |
クラスメソッドのサンプル
Character aObj = new Character( 'A' );
Character nObj = new Character( '3' );
Character cObj = aObj;
if( Character.isLetter( aObj.charValue() ) ){
System.out.println("値は英文字です。");
} else {
System.out.println("値は英文字ではありません。");
}
if( Character.isDigit( nObj.charValue() ) ){
System.out.println("値は数字です。");
} else {
System.out.println("値は数字ではありません。");
}