クラスライブラリについて

ファイルはzipフォルダに納められています。
解凍ソフト(Aladdin Expander等)を使って解凍して下さい。

クラスライブラリとは・・・

Javaにはプログラムで良く使用される機能をまとめた「クラスライブラリ」が用意されています。
例えば、文字列を扱うStringクラスや、キーボードから値を入力するInputStreamReaderクラス等が有ります。
此等のクラスライブラリはJavaが正しくインストールされている環境なら、利用出来ます。
Javaの方で既に用意されているクラスだと理解して下さい。
Javaでプログラムを作成する時は、全ての機能を記述するのではなく、此等のクラスライブラリを利用して作成します。
クラスライブラリでまとめられているクラスは、此迄説明したクラスと同じ様に、変数・メソッド・コンストラクタが定義されています。

主なクラスライブラリ

クラス 説明
String 文字列を扱う
StringBuffer 変更可能な可変長の文字列を扱う
StringTokenizer 文字列を分割
Integer 基本データ型intのラッパークラス
Double 基本データ型doubleのラッパークラス
Random 乱数を生成
Date 特定の日付・時刻に関する情報をカプセル化
Vector 動的な配列を作成
Stack LIFO型スタックを提供
Hashtable ハッシュ表を作成

Stringクラス

Stringクラスは文字列を扱うクラスとして説明していますが、String型変数strを宣言し、文字列""abc""を代入する時は、下の様に記述します。

String str = "abc";

" "によって囲まれた文字列は、実は既にStringオブジェクトが生成され、其の参照を示すと言う意味を持っています。
クラスのオブジェクトを生成する時はnew演算子を使用しました。
Stringクラスもまた、new演算子を使用して次の様に記述出来ます。

String str = new String("abc");

どちらを記述しても同じ意味になります。

Stringクラスで用意されている主なメソッド

メソッド 説明
char charAt(int i) iで指定された位置の文字を返す
boolean endsWith(String s) sと同じ文字列で終わっていればtrue、そうでなければfalseを返す
boolean equals(Object s) sが同じ文字列ならtrue、そうでなけらばfalseを返す
boolean equalslgnoreCase(String s) equalsと同じ、但し大文字と小文字を未区別
int indexOf(int ch) 文字chが出現する位置を返し、存在しなければ-1を返す
int indexOf(String s) 文字列sが出現する位置を返し、存在しなければ-1を返す
int lastIndexOf(int ch) 文字chが最後に出現する位置を返し、存在しなければ-1を返す
int length() 文字数を返す
boolean startsWith(String s) 文字列sと同じも耳順で始まればtrue、そうでなければfalseを返す
String substring(int start) start位置からの部分文字列を返す
String substring(int start, int end) start位置からend位置直前迄の部分文字列を返す
String toLowerCase() 小文字に変換した文字列を返す
String toUpperCase() 大文字に変換した文字列を返す
char[] toCharArray() 文字の配列を返す

StringBufferクラス

Stringクラス以外に文字列を扱えるStringBufferクラスが有ります。
Stringクラスでは生成した文字列を後から変更出来ませんが、StringBufferクラスでは、生成した文字列を変更出来ます。

Stringクラスのコンストラクタ

コンストラクタ 説明
StringBuffer() バッファ容量を16文字で初期化
StringBuffer(int size) size数分のバッファ容量で初期化
StringBuffer(String s) 文字列sで初期化

Stringオブジェクトは1度作成すると後から変更出来ない為、+演算子による文字列の連結では、「連結前の文字列」・「連結される文字列」・「連結後の文字列」の3つのオブジェクトの生成が行われて終います。
繰り返しの文字列連結ではStringBufferを使用する事で余分なオブジェクトの生成を抑えられ、パフォーマンスが向上します。

String str = "ABC";
str = str+"123";

StringBufferクラスで用意されている主なメソッド

メソッド 説明
StringBuffer append(char c) cの文字を付加
StringBuffer append(int i) iの文字列表現を付加
StringBuffer append(String s) sの文字列表現を付加
int capacity() 文字列バッファの容量を返す
char charAt(int i) 位置iの文字を返す
StringBuffer insert(int i, char c) 位置iの直前にcを挿入
StringBuffer insert(int i, int j) 位置iの直前にjの文字列表現を挿入
StringBuffer insert(int i, String s) 位置iの直前にsの文字列表現を挿入
int length() バッファの文字数を返す
StringBuffer reverse() 文字の順序を反転
void setCharAt(int i, char c) 位置iの文字をcに
void setLength(int len) バッファサイズをlenに
String toString() 文字列を含むStringオブジェクトを返す

StringTokenizerクラス

文字列を扱うStringクラス・文字列を変更出来るStringBufferクラスを説明しましたが、他に文字列を分割するStringTokenizerクラスが用意されています。
StringTokenizerクラスは文字列をトークン(文字列の構成要素)に分割出来ます。
此の時文字列はトークン毎に区切り文字で区切っている必要が有ります。

StringTokenizerクラスのコンストラクタ

コンストラクタ 説明
StringTokenizer(String s) sの文字列を空白文字で分割
StringTokenizer(String s, String delim) sの文字列区切り文字delimで分割
StringTokenizer(String s, String delimiters, boolean returnTokens) sの文字列を区切り文字delimitersで分割
returnTokensがtrueの時は区切り文字もトークンとして返す

StringTokenizerクラスで用意されている主なメソッド

メソッド 説明
int countTokens() 文字列に含まれるトークンの個数を返す
boolean hasMoreTokens() 未だトークンが有る時true、そうでなければfalseを返す
String nextToken() 次のトークンを返す
String nextToken(String delim) 次のトークンを返し、delimを区切り文字として設定

ラッパークラス

int型やchar型等の基本データ型はオブジェクトとして使用出来ませんが、Vectorの様にオブジェクトの集合を扱うクラスを使う時等は、どうしても基本データ型のデータをオブジェクトに変換して扱いたい時が有ります。
其の様な時に使用する目的でラッパークラスが用意されています。

主なラッパークラス

ラッパークラス 基本データ型
Boolean boolean
Byte byte
Short short
Integer int
Long long
Float float
Double double
Character char

ラッパークラスのオブジェクトは下の様に、基本データ型のデータをコンストラクタに渡して生成します。
生成されたオブジェクトの参照は、Object型の変数に格納出来る様になります。
ラッパークラスには、基本データ型のデータをオブジェクトとして扱う以外に、文字列から基本データ型を返すstaticメソッドや、対応する基本データ型の範囲を示す定数等、基本データ型に関する様々な機能が提供されています。

Object data;
int num1 = 10;
data = num1;←エラーに!!
Integer num2 = new Integer(num1);
data = num2;←dataにはnum2の参照が設定

数値を扱うラッパークラスには文字列からintやdouble等の数値型を必ずメソッド(parseXXX())を持っています。

文字列からそれぞれの基本データ型を返すメソッド

基本データ型 ラッパークラス メソッド
byte Byte static byte parseByte(String s)
short Short static short parseShort(String s)
int Integer static int parseInt(String s)
long Long static long parseLong(String s)
float Float static float parseFloat(String s)
double Double static double parseDouble(String s)

文字列の形式が不正の場合はNumberFormatExceptionが送られます(スローされます)。
又、数値を扱うラッパークラスには、其のオブジェクトが持つ値をintやdouble等の数値型を返すメソッド(parseXXX())を持ちます。
次にIntegerオブジェクトの値からdouble型の値を返す記述を示します。

Integer num = new Integer("123"); //Integerオブジェクト生成
double d = num.doubleValue(); //double←Integer

xxxValue()はstaticメソッドでないのでオブジェクトを生成してから呼び出します。
又上の記述を下の様にも記述出来ます。

double d = new Integer("123").doubleValue();

ラッパークラスのオブジェクトが持つ値から、各基本データ型を返すメソッド

変換する基本データ メソッド
byte byte byteValue();
short short shortValue();
int int intValue();
long long longValue();
float float floatValue();
double double doubleValue();

此等のメソッドはCharacter・Booleanには有りません。
Boolean以外のラッパークラスには対応する基本データ型で扱える数値の最大値(MAX_VALUE)と最小値(MIN_VALUE)のフィールドを持っています。

ラッパークラスのフィールド

ラッパークラス MAX_VALUE MIN_VALUE
Byte 127 -128
Short 32767 -32768
Integer 2147483647 -2147483648
Long 9223372036854775807 -9223372036854775808
Float 3.4028234663852886E38f 1.401298464324817E-45f
Double 1.7976931348623157E308d 4.9E-324d
Character 65535 0

各ラッパークラスで持つMAX_VALUE・MIN_VALUEは定数(static=final)です。

Characterクラスの主なメソッド

メソッド 説明
static boolean isDigit(char ch) 指定された文字が、数字かどうかを判定
static boolean isLowerCase(char ch) 指定された文字が、小文字かどうかを判定
static boolean isUpperCase(char ch) 指定された文字が、大文字かどうかを判定
static boolean isLetterOrDigit(char ch) 指定された文字が、汎用文字又は数字かどうかを判定
static boolean isSpace(char ch) 指定された文字が、空白文字かどうかを判定

Vectorクラス

今迄の配列は宣言後にサイズを追加出来ませんが、Vector(ベクトル)では自動的に配列のサイズを追加出来ます。
ベクトルのサイズは、オブジェクト生成時に初期サイズを決めて作成します。
サイズは不足した地点で自動的に追加されます。
又、配列では同じデータ型で要素を構成しますが、ベクトルはObject型の可変長配列を構成出来ます。

Vectorクラスのコンストラクタ

コンストラクタ 説明
Vector() 初期サイズが10個の要素のベクトルを作成
Vector(int n) 初期サイズがn個の要素のベクトルを作成
Vector(int n, int delta) 初期サイズがn個の要素のベクトルを作成し、delta個単位で追加

Vectorクラスで用意されている主なメソッド

メソッド 説明
void addElement(Object o) oをベクトルに追加
boolean contains(Object o) oをベクトル内に存在するか判定
Object elementAt(int i) i番目の要素を返す
Enumeration elements() 要素の列挙を返す
int indexOf(Object o) ベクトル内でoを検索し、最初に見付かった要素を返す
void removeAllElements() 全ての要素を削除
void removeElementsAt(index i) i番目の要素を削除
void setElementsAt(index i, Object o) i番目の要素にoを代入
int size() ベクトル内の要素数を返す

Enumerationインタフェースのメソッド

メソッド 説明
boolean hasMoreElements() 未だ要素が有る時はtrue、そうでない時はfalseを返す
Object nextElement() 次の要素を返す
ソース ダウンロード
Temp0901.java Temp09.zip
Temp0902.java
Temp0903.java
Temp0904.java

戻る