クラスライブラリについて
ファイルは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オブジェクトが生成され、其の参照を示すと言う意味を持っています。
クラスのオブジェクトを生成する時は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() |
次の要素を返す | 戻る |