Javaで文字列に関連するいくつかの一般的なクラス
1441 ワード
1.StringBuilderクラス
StringBuilderクラスはJDK 1.5で初めて導入され、StringBufferの動作を改善するために使用されます.
StringBuilderクラスとStringクラスの主な違いは次のとおりです.
①StringBuilderクラスで作成したオブジェクトは、自身の文字列の内容を変更できます.したがって、「可変」オブジェクト、または「mutable」と呼ばれます.
②Stringによって作成されたオブジェクト、または参照されたオブジェクトの内容は変更できません.したがって、「不可改性」オブジェクト、または「immutable」と呼ばれます.
③StringBuilderオブジェクトは、文字列の変更によるメモリアドレスとコンテンツの切り替えが必要なため、Stringオブジェクトよりも実行速度が遅い.
④StringBuilderクラスにはStringにない方法がいくつか追加されています.
2.StringBufferクラス
StringBufferクラスとStringBuilderクラスは本質的に異なりません.同じ構造関数と方法があり、定義と操作も完全に同じです.
相違点は次のとおりです.
①StringBufferの方法は同期方法(synchronized methods)です.同期方法はマルチスレッドプログラムの開発に用いることができる.1つのマルチスレッドアプリケーションでは、1つのオブジェクトを複数のスレッドで同時にアクセスできます.
②StringBuilderの方法は同期特性を持たない.しかし、StringBufferよりも実行速度が速い.
③StringBufferはマルチスレッド技術を適用していないプログラムでは、StringBuilderに取って代わられることが多い.
3.StringTokenizerクラス
StringTokenizerは文字列オブジェクトの分解処理に特化した重要なAPIクラスである.
次に例を示します.
実行結果は次のとおりです.
StringBuilderクラスはJDK 1.5で初めて導入され、StringBufferの動作を改善するために使用されます.
StringBuilderクラスとStringクラスの主な違いは次のとおりです.
①StringBuilderクラスで作成したオブジェクトは、自身の文字列の内容を変更できます.したがって、「可変」オブジェクト、または「mutable」と呼ばれます.
②Stringによって作成されたオブジェクト、または参照されたオブジェクトの内容は変更できません.したがって、「不可改性」オブジェクト、または「immutable」と呼ばれます.
③StringBuilderオブジェクトは、文字列の変更によるメモリアドレスとコンテンツの切り替えが必要なため、Stringオブジェクトよりも実行速度が遅い.
④StringBuilderクラスにはStringにない方法がいくつか追加されています.
2.StringBufferクラス
StringBufferクラスとStringBuilderクラスは本質的に異なりません.同じ構造関数と方法があり、定義と操作も完全に同じです.
相違点は次のとおりです.
①StringBufferの方法は同期方法(synchronized methods)です.同期方法はマルチスレッドプログラムの開発に用いることができる.1つのマルチスレッドアプリケーションでは、1つのオブジェクトを複数のスレッドで同時にアクセスできます.
②StringBuilderの方法は同期特性を持たない.しかし、StringBufferよりも実行速度が速い.
③StringBufferはマルチスレッド技術を適用していないプログラムでは、StringBuilderに取って代わられることが多い.
3.StringTokenizerクラス
StringTokenizerは文字列オブジェクトの分解処理に特化した重要なAPIクラスである.
次に例を示します.
import java.util.StringTokenizer;
public class StringTokenizerTest {
public static void main(String[] args) {
StringTokenizer dataToken = new StringTokenizer("10-15-2007", "-");
while (dataToken.hasMoreTokens()) {
System.out.println(dataToken.nextToken());
System.out.println("Number of tokens left:" + dataToken.countTokens());
}
}
}
実行結果は次のとおりです.
10
Number of tokens left:2
15
Number of tokens left:1
2007
Number of tokens left:0