Previous | Next | Trail Map | Writing Java Programs | 目次


Storing と StringBuffer クラス

次のクラスの reverseIt() メソッドは文字列の文字を逆にするために String と StringBuffer クラス両方を使用する。 もし語のリストを持っているなら、韻を踏んでいる語(少なくとも音節を終了している同じと一緒の語のリスト)のリストを作成するソートプログラムとしてこのメソッドを使用することができる。 つまりリストのすべての文字列を逆にして、リストをソートして、再び文字列を逆にすればよいだろう。

class ReverseString {
    public static String reverseIt(String source) {
        int i, len = source.length();
        StringBuffer dest = new StringBuffer(len);

        for (i = (len - 1); i >= 0; i--) {
            dest.append(source.charAt(i));
        }
        return dest.toString();
    }
}

reverseIt()メソッドは逆にされるための文字列データを含む source という String 型の引数を受け入れる。 このメソッドは、Source と同サイズの StringBuffer 型の dest を作成して、Source 上のすべての文字を逆にたどり、それを dist に一文字ずつ追加して逆文字列にする。 最後に、メソッドは String 型に、 StringBuffer 型の dist を変換する。

String と StringBuffers の間の違いに加え、次のレッスンでは String と StringBuffer クラスのいくつかの特徴を示す。String, StringBuffer をそれぞれの作成について、情報を得るためのアクセス機構メソッドについて、StringBuffer の変更について、文字列の型変換などについてである。

なぜ2つの String クラスがあるか?

Java 開発環境は、文字データを格納操作する2つのクラスを提供する:固定の文字列のための String と変更可能な文字列のための StringBuffer である。

String と StringBuffers の作成

次の行は上のメソッドからの引用である。

StringBuffer dest = new StringBuffer(len);


StringBuffer dest = new StringBuffer(len);

StringBuffer の作成は、次の 3 ステップ行われる:宣言、インスタンス化、初期化。 これらは任意の型のオブジェクトを作成することと同じステップである。

アクセス機構メソッド

reverseIt()メソッドは source についての情報を得るために charAt()と length() の2つのアクセス機構メソッドを使用する。 String と StringBuffer はそれぞれ、サブストリングを検査したり、指定された文字の位置を得る、多くの他のアクセス機構メソッドを提供している。

StringBuffer の変更

reverseIt()メソッドは dest に文字を追加するのに StringBuffer の append()メソッドを使用する。 appenf() 加えて、 StringBuffer は、文字を挿入したり、バッファ内の特定の位置の文字を変化させるメソッドなどを提供している。

オブジェクトの String への変換

reverseIt()は、結果の StringBuffer を String に変換して、文字列を返す。 String クラスの valueOf()メソッドを使用することでいくつかの異なるデータ型をString 型に変換することができる。

Strings の数への変換

数に String のコンテンツを変換するために Integer 、 Float 、Double と Long クラスのメソッドを同様に使用することができる。

その他の機能

String と StringBuffer は、連結、比較、置換、変換など、文字列データを操作するいくつかの有用な方法を提供しているjava.lang.Stringと java.lang.StringBuffer にこれらの2つのクラスによりサポートされるメソッドと変数のすべてを要約、リストされている。

Strings と Java コンパイラ

別のレッスンに移り進む前に、最後にもう一つ、String と StringBuffers についての重要な奇妙を理解する必要がある。 Java コンパイラはリテラル文字列と連結を処理するために内部で String と StringBuffers を使用する。


C 言語と C++ プログラマへの注釈:C 言語と C++ 文字列が単に文字の null で終わる配列であるのに対して、 Java 文字列は最上位オブジェクトである。



Previous | Next | Trail Map | Writing Java Programs | 目次