9.StringTokenizer | |
Stringクラスの文字列を例えばスペースや改行などで単語ごとに切り分けたりすることができる。通常はスペース、改行、タブが単語(以下トークン)とトークンの区切り(以下デリミタ)文字だが、プログラマーが他の文字を指定することもできる。 このクラスを使ってトークンに区切る場合は、まずStringTokenizerのコンストラクタで元になる文字列と必要ならばデリミタを指定する。このクラスはEnumerationインターフェースで元になる文字列と必要ならばデリミタを指定する。このクラスはEnumerationインターフェースをインプリメントしているのでそのインターフェースのnextElement( )メソッドまたはnextToken()メソッドを呼び出すことで次々にトークンを得ることができる。これをhasMoreElements()メソッドまたはhasMoreTokens()がfalseになるまで繰り返すことで、全トークンにアクセスする。 |
|
import java.util.StringTokenizer |
|
コンストラクタ | |
StringTokenizer(String str) 指定された文字列に対する StringTokenizer を作成する。 |
|
StringTokenizer(String str, String delim) 指定された文字列に対する StringTokenizer を作成する。 デリミタには指定した文字列を使用する。delimに" \t\n\r\f"を指定すると1つめのコンストラクタと同じになる。 |
|
StringTokenizer(String str, String delim, boolean returnDelim) 指定された文字列に対する StringTokenizer を作成する。 デリミタには指定した文字列を使用する。delimに" \t\n\r\f"を指定すると1つめのコンストラクタと同じになる。 returnDelimがfalseの場合は2つめのコンストラクタと同じになる。trueの場合はデリミタ文字も1つのトークンとして処理されるようになる。 |
|
メソッド | |
int | countTokens() 例外を生成せずにトークナイザの nextToken メソッドを呼び出せる回数を計算する。 |
boolean | hasMoreElements() トークナイザの文字列で利用できるトークンがまだあるかどうかを判定する。 |
boolean | hasMoreTokens() トークナイザの文字列で利用できるトークンがまだあるかどうかを判定する。 |
Object | nextElement() 文字列トークナイザから次のトークンを返します。戻り値はObjectクラスですが実際はStringクラスが返されますので、必要によってキャストする。 トークンが残っていない場合にはNoSuchElementExceptionが投げらる。 |
String | nextToken() 文字列トークナイザから次のトークンを返す。 トークンが残っていない場合にはNoSuchElementExceptionが投げられる。 |
String | nextToken(String newDelim) まずデリミタを指定したデリミタに変更し、文字列トークナイザから次のトークンを返す。新しいデリミタは今後も引き継がれる。 トークンが残っていない場合にはNoSuchElementExceptionが投げられる。 |
sample) StringTokenizerクラスの基本 | |
import java.io.*; imoprt java.util.*; class Test{ StringTokenizer token = new StringTokenizer(str); while( token.hasMoreTokens( ) ) { System.out.println( token.nextToken( ) ); } } } |
|
C:\Java\>java Test map A long time ago in a galaxy far, far away. A NEW HOPE It is a period of civil war. Rebel spaceships, striking from a hidden base, have won their first victory against the evil Galactic Empire. C:\Java\> |
Category: Java
14-8.String
8.String | |
Stringクラスは文字列を扱うクラス。「System.out.println("ABCD")」といった"ABCD"は実はStringクラスのインスタンスだったのである。Stringクラスを使うと文字を置換したり、文字列を検索したりすることができるようになる。 Stringクラスの文字列は「+」演算子を使って結合することができるが、Stringクラス文字列は定数として扱われるため、文字列の長さが変わるような結合などを頻繁に行うと処理時間を要したりする。この場合には、StringBufferクラスを用いる。 |
|
import java.lang.String |
|
コンストラクタ | |
String() 空の文字列を作成する。 |
|
String(String org) 指定されたorgと同じ文字列を作成する。 |
|
String(char[] value) 指定された文字配列からなる文字列で初期化した文字列を作成する。 nullが与えられた場合にはNullPointerExceptionが投げられる。 |
|
String(char[] value, int offset, int count) 指定された文字配列からのoffset番目の文字からcountで指定された文字数の文字列を作成する。 valueがnullの場合にはNullPointerExceptionが投げられる。 offset, countが範囲外になった場合IndexOutOfBoundsExceptionが投げられる。 |
|
String(byte[] bytes, int offset, int count) 指定されたバイト配列からのoffset番目の文字からcountで指定された文字数の文字列を作成する。プラットフォームのデフォルト文字セットを使用して文字列に変換するため、プラットフォームによって文字化けする可能性もある。 |
|
String(byte[] bytes) 指定されたバイト配列から文字列を作成する。プラットフォームのデフォルト文字セットを使用して文字列に変換するため、プラットフォームによって文字化けする可能性もある。 |
|
メソッド | |
int | length() 文字列の文字数を返す。C++などと違って、Javaではunicode文字なので、感じなども1文字とカウントされる。 |
char | charAt(int index) index番目の文字を返す。最初の文字は0になる。indexが不正の場合はIndexOutOfBoundsExceptionが投げられる。 |
byte[] | getBytes() この文字列をバイト配列に変換する。プラットフォームのデフォルト文字セットを使用するため、他のプラットフォームでは文字化けする可能性がある。 |
boolean | equals(Object str) 指定したstr(strはStringクラス)と比較する。同じ文字列であればtrueが返される。大文字小文字は区別される。「==」演算子では参照先が同じかを比較する演算子なので、同じ文字列でもfalseが返される場合がある。したがって、文字列の比較にはequals演算子を使う。 |
boolean | equalsIgnoreCase(String str) 指定した文字列strと比較をする。同じ文字列であればtrueが返される。大文字小文字は区別されない。 |
int | compareTo(String str) Unicodeの辞書式に従って文字列を比較する。strの方が辞書の後にあれば負数が、strの方が辞書の前にあれば正数が返される。equalsメソッドでtrueが返される場合には0が返される。strがnullの場合にはNullPointerExceptionが投げられる。 |
boolean | startsWith(String prefix) 文字列がprefixで始まる場合にtrueが返される。 引数がnullの場合にはNullPointerExceptionが投げられる。 |
boolean | startsWith(String prefix, int offset) offset番目の文字列がprefixで始まる場合にtrueが返される。 引数がnullの場合にはNullPointerExceptionが投げられる。 |
boolean | endsWith(String suffix) 文字列がsuffixで終わる場合にtrueが返される。 引数がnullの場合にはNullPointerExceptionが投げられる。 |
int | indexOf(int ch) 文字列を最初から最後に向かって検索し、文字(char型ではなくint型にキャストして引数として渡す)chが最初に出てきたインデックスを返す。指定した文字が見つからない場合には-1が返される。 |
int | indexOf(int ch, int fromIndex) 文字列をfromIndex番目の文字から最後に向かって検索し、文字(char型ではなくint型にキャストして引数として渡す)chが最初に出てきたインデックスを返す。指定した文字が見つからない場合には-1が返される。 |
int | indexOf(String str) 文字列を最初から最後に向かって検索し、文字列strが最初に出てきたインデックスを返す。指定した文字が見つからない場合には-1が返される。strがnullの場合にはNullPointerExceptionが投げられる。 |
int | indexOf(String str, int fromIndex) 文字列をfromIndex番目の文字から最後に向かって検索し、文字列strが最初に出てきたインデックスを返す。指定した文字が見つからない場合には-1が返される。 strがnullの場合にはNullPointerExceptionが投げられます。 |
int | lastIndexOf(int ch) 文字列を最後から最初に向かって検索し、文字(char型ではなくint型にキャストして引数として渡す)chが最初に出てきたインデックスを返す。指定した文字が見つからない場合には-1が返される。 |
int | lastIndexOf(int ch, int fromIndex) 文字列をfromIndex番目から最初に向かって検索し、文字(char型ではなくint型にキャストして引数として渡す)chが最初に出てきたインデックスを返す。指定した文字が見つからない場合には-1が返される。 |
int | lastIndexOf(String str) 文字列を最後から最初に向かって検索し、文字列strが最初に出てきたインデックスを返す。指定した文字が見つからない場合には-1が返される。strがnullの場合にはNullPointerExceptionが投げられる。 |
int | lastIndexOf(String str, int fromIndex) 文字列をfromIndex番目から最初に向かって検索し、文字列strが最初に出てきたインデックスを返す。指定した文字が見つからない場合には-1が返される。strがnullの場合にはNullPointerExceptionが投げられる。 |
String | substring(int beginIndex) この文字列の部分文字列である新しい文字列を返す。部分文字列は指定されたインデックスで始まり、この文字列の最後までになる。例えば"unhappy".substring(2) では "happy" が返される "矢田亜紀子".substring(2) では "亜紀子" が返される。引数が不正の場合にはIndexOutOfBoundsExceptionが投げられる。 |
String | substring(int beginIndex, int endIndex) この文字列の部分文字列である新しい文字列を返す。部分文字列は、指定された beginIndex から始まり、インデックス endIndex – 1 にある文字まで。 例えば"smiles".substring(1, 5) では "mile" が返される。"北海道、東京、沖縄".substring(4, 6) では "東京" が返される。引数が不正の場合にはIndexOutOfBoundsExceptionが投げられる。 |
String | concat(String str) 文字列strを最後に連結した文字列を返す。「+」演算子を用いることもできる。 例) "ABC".concat("DEF") と "ABC"+"DEF"は同じ。 strがnullの場合にはNullPointerExceptionが投げられる。 |
String | replace(char oldChar, char newChar) 文字列内のoldCharをnewCharに置換した文字列を返す。 |
String | toLowerCase() 文字列内の大文字を小文字に変換する。unicodeで比較されますので全角アルファベットなども変換される。 |
String | toUpperCase() 文字列内の小文字を大文字に変換する。unicodeで比較されますので全角アルファベットなども変換される。 |
String | trim() 文字列のコピーを返す。ただし、最初と最後の空白文字(\u0020以下の文字)は省略される。全角スペースは削除されない。 |
char[] | toCharArray() 文字列をchar配列に変換する。 |
void | insertElementAt(Object obj, int index) Vectorの指定されたindexに、指定されたオブジェクトを要素として挿入する。 |
String | valueOf(Object obj) objのtoStringが呼ばれます。objがnullの場合は"null"が返される。デバッグ作業中やエラーメッセージでそのクラスのインスタンスの中身を表示させたい時などにも利用される。 |
String | valueOf(boolean b) bがtrueの場合は"true"が、falseの場合は"false"が返される。デバッグ作業中やエラーメッセージでそのクラスのインスタンスの中身を表示させたい時などにも利用される。 |
String | valueOf(char ch) chの文字をString型に変換した1文字の文字列が返される。 |
String | valueOf(int n) nを文字列に変換した文字列が返される。例えばn=100ならば"100"が返される。 |
String | valueOf(long n) nを文字列に変換した文字列が返される。例えばn=100ならば"100"が返される。 |
String | valueOf(float n) nを文字列に変換した文字列が返される。例えばn=100ならば"100"が返される。 |
String | valueOf(double n) nを文字列に変換した文字列が返される。例えばn=100ならば"100"が返される。 |
sample) Stringクラスの基本 | |
import java.io.*; imoprt java.util.*; class Test{ Zstr2 = "abcde"; ZSystem.out.print( "\"123\" + "123" + str2 ); ZSystem.out.print( "\"123\".contact(str2) : "123".contact(str2) ); ZSystem.out.print( ); //パス名からファイル名などを取り出す例 ZSystem.strFileName; ZSystem.strPath; ZSystem.strSttribute; str1 = "C:\\Document and Settings\\administrator\\デスクトップ\\新しいフォルダ\\test.java"; //拡張子 ZSystem.out.println("拡張子 : " + strAttribute); |
|
C:\Java\>java Test map str1 == str2 : false str1.equals(str2) : true 矢口真里 拡張子:.java C:\Java\> |
14-6.Hashtable
6.Hashtable | |
Hashtable は辞書のようなコンテナである。Vectorや配列は順番にオブジェクトを格納し、インデックス(添字)で格納場所を指定していた。Hashtableは添字(数字)で格納場所を指定するのではなく、クラスのオブジェクトで格納場所を指定する。格納場所を指定するオブジェクトをキーといい、格納されるオブジェクトを値(バリュー)という。 例えば、キーに英単語を格納し、値にその日本語訳を格納すると、英和辞書を作ることができる。このように何かと何かを対応づけるような場合に使用する。含まれるすべての値にアクセスしたい場合はelementsメソッドを、すべてのキーにアクセスしたい場合にはkeysメソッドを用いる。 |
|
import java.util.Hashtable |
|
コンストラクタ | |
Hashtable()
デフォルトの初期容量(11)でHashtableを作成する |
|
Hashtable(int intialCapacity)
初期容量を指定してHashtableを作成する。初期容量を超えて追加(put)使用とした場合は容量を更新する作業が行われるため、時間がかかる場合がある。 |
|
メソッド | |
void | clear() このHashtableの中身を消去する |
Object | clone() このHashtableのコピーを作成する。格納されているキーや値はコピーされない。 |
boolean | contains(Object value) 指定された値が格納されていればTrueを格納されていなければFalseが返される。containsKeyよりも時間がかかる。 |
boolean | containsKey(Object key) 指定されたキーが格納されていればTrueを格納されていなければFalseが返される。 |
Enumeration | elements() ハッシュテーブルにある値のリストを返す。 |
Enumeration | keys() ハッシュテーブルにあるキーのリストを返す。 |
Object | get(Object key) 指定されたキーに対応する値を返す。対応する値がない場合はnullが返される。 |
boolean | isEmpty() このHashtableがからならTrueを、何かが登録されていればFalseを返す。 |
Object | put(Object key, Object value) キーに対する値を格納する。key, valueともにnullは受け付けず、NullPointerExceptionを返す。すでに同じキーがある場合、前の値が戻り値として返され、キーがなかった場合にはnullが返される。 |
Object | get(Object key) キーに対する値を返す。keyはnullの場合またはキーが登録されていない場合はnullが返される。 |
Object | remove(Object key) 指定したキーを削除する。そのキーに対する値が返されるが、なければnullが返される。 |
int | size() 登録されている項目数を返します。 |
sample) Hashtableクラス | |
import java.io.*; imoprt java.util.*; class Test{ //引数がなければ終了 String str = (String)table.get( args[0] ); if ( str == null ) System.out.println("そんな言葉は知りません") ; if System.out.println(str) ; } } |
|
C:\Java\>java Test map そんな言葉は知りません C:\Java\>java Test apple C:\Java\> |