一般的なクラスのJavaクラス04_StringBuffer

1.StringBufferクラスの概要

文字列とStringBufferのは、すなわち、文字の文字列を含む複数のデータを格納し、文字列を操作するために使用することができます。Stringクラスは、Unicode文字の不変シーケンスを表し、文字列定数を。初期化されると、文字列の文字列の内容は、もはや(すでに原則Stringクラスの概要で取り上げ)に変更することはできません。その動作上の文字列の文字列操作は、実際にコピー(原本)で、元の文字列が変更されていません。例えば:

String str = "hello"; // 创建了一个字符串
// 实际上原来的"hello"字符串对象已经丢弃了,现在又产生了一个字符串"hello世界"
str = str + "世界"; 

これらの変更文字列のコンテンツを複数回場合、それによってプログラムの効率を低下させる、メモリ内の文字列オブジェクトの残りのコピーの多数につながります。

StringBufferクラスは抽象クラスAbstractStringBuilderのサブクラスで、変数StringBufferクラスは、Unicode文字列を表す、文字列変数を。私たちは、オープンソースのAbstractStringBuilderクラス:
ここに画像を挿入説明
ASはソース、また内部AbstractStringBuilder文字の配列から見ることができますが、文字配列が最終によって変更されていない、それは我々がStringBufferのとしても知られているので、私たちは、いつでも変更することができることを意味し、「文字の可変配列。」 。元の文字列StringBufferクラス自体が動作しているため、文字列が変更操作、高効率することなく複製コピーが生成されます。

2.StringBufferクラスのコンストラクタ

StringBuffe() バッファなしで構築された文字列、16文字の初期容量。
StringBufferの(CharSequence引数の配列) CharSequence引数のバッファ同じ文字列を含む構造体は、指定されました。
StringBufferの(int型の容量) 文字列バッファと文字なしで構成された指定された初期容量。
StringBufferの(String str)文字 指定された文字列の文字列の内容を初期化するように構成されたバッファ。

[例] StringBufferクラスのコンストラクタメソッド

// 1.实例化一个初始容量为16个字符的可变字符串
StringBuffer sb1 = new StringBuffer();
// 2.实例化一个指定字符容量的可变字符串
StringBuffer sb2 = new StringBuffer(20);
// 3.实例化一个指定字符串内容的可变字符串
StringBuffer sb3 = new StringBuffer("hello world");

3.StringBufferクラスA一般的な方法

3.1メソッドを追加します。

アペンド(タイプデータ)メソッド接続文字列と同様に、文字列変数に追加指定されたコンテンツ、。このメソッドを呼び出した後、文字列変数の内容も変化します。

[例] appendメソッド

// 创建一个可变字符容器,用来存放数据
StringBuilder sb = new StringBuilder("hello");
// 字符串添加
sb.append("123");
System.out.println(sb); // 输出:"hello123"
sb.append(false);
System.out.println(sb); // 输出:"hello123false"
sb.append(123);
System.out.println(sb); // 输出:"hello123false123"

insert(int offset, Type data)指定されたインデックスでの文字列変数へのコンテンツの方法。インデックスが範囲StringIndexOutOfBoundsExceptionをスローされた例外を逸脱し、長さ(0)の間の範囲であることに留意されたいです。このメソッドを呼び出した後、文字列変数の内容も変化します。

[例]挿入方法を用いて

// 创建一个可变字符容器,用来存放数据
StringBuilder sb = new StringBuilder("hello world");
// 字符串插入
ssb.insert(2, "AAA");
System.out.println(sb); // 输出:"heAAAllo world"
sb.insert(7, 123);
System.out.println(sb); // 输出:"heAAAll123o world"
sb.insert(12, true);
System.out.println(sb); // 输出:"heAAAll123o trueworld"

3.2 Deleteメソッド

削除(int型 開始 int型 エンド **)** 方法は、エンド1までの文字のシーケンスを開始するために最初から期間を削除します。範囲は、開始の間にあることに注意してください()0長さ、及び以上開始すべき終了、そうでなければStringIndexOutOfBoundsExceptionを例外がスローされます。このメソッドを呼び出した後、文字列変数の内容も変化します。

[実施例]削除方法

// 创建一个可变字符容器,用来存放数据
StringBuilder sb = new StringBuilder("hello world");
// 字符串删除
sb.delete(2, 5); 
System.out.println(sb); // 输出:"he world"

deleteCharAt(int index)場所を指定された単一の文字列の変数を削除する方法。インデックスは長さ0の範囲であることに注意を() - 1の間、StringIndexOutOfBoundsExceptionを例外が範囲外にスローされます。このメソッドを呼び出した後、文字列変数の内容も変化します。

[例] [deleteCharAt](MK:@MSITStore:C:\ Users \ユーザー管理者\ Desktopは\ jdkのAPI 1.8_google.CHM :: / javaの/ LANG / StringBuffer.html#deleteCharAt-INT-)法

// 创建一个可变字符容器,用来存放数据
StringBuilder sb = new StringBuilder("hello world");
// 字符串删除
sb.deleteCharAt(2);
System.out.println(sb); // 输出:"helo world"

3.3 Findメソッド

まったく同じメソッドと文字列クラスStringBufferクラスを見つけるための方法および機能は、ここでは詳細な概要ではありません。

charAt(int型のインデックス) 指定されたインデックスのこのシーケンスを返しますchar値。
indexOf(String str)文字 文字列が最初に現れる内のサブストリングのインデックスを返します。
indexOf(Stringstr、int型fromIndexの) 戻り値指定したインデックスで始まる部分文字列の指定したインデックスの最初に出現しました。
lastIndexOf(String str)文字 右端の発生をサブストリング指定した文字列内の戻り値のインデックス。
lastIndexO(文字列str、int型fromIndexの) 戻り値指定したインデックスで始まる文字列の最後に出現する、のサブストリングのインデックス。

3.4修正方法

replace(int start, int end, String str)この方法は、開始から終了-1文字を置換する文字列strで始まります。範囲は、開始の間にあることに注意してください()0長さ、及び以上開始すべき終了、そうでなければStringIndexOutOfBoundsExceptionを例外がスローされます。このメソッドを呼び出した後、文字列変数の内容も変化します。

〔実施例〕方法を置換

// 创建一个可变字符容器,用来存放数据
StringBuilder sb = new StringBuilder("hello world");
// 字符串替换
sb.replace(5, 6, "我替换了空格");
System.out.println(sb); // 输出:"hello我替换了空格world"

setCharAt(int index, char ch)メソッド、変数を指定した置換文字列のインデックス位置。インデックスは長さ0の範囲であることに注意を() - 1の間、StringIndexOutOfBoundsExceptionを例外が範囲外にスローされます。このメソッドを呼び出した後、文字列変数の内容も変化します。

[例] setCharAt方法

// 创建一个可变字符容器,用来存放数据
StringBuilder sb = new StringBuilder("hello-world");
// 字符串替换
sb.setCharAt(5, '_');
System.out.println(sb); // 输出:"hello_world"

3.5逆方法

()メソッドは、文字の逆の順序を逆に。このメソッドを呼び出した後、文字列変数の内容も変化します。

[実施例]逆方法

// 创建一个可变字符容器,用来存放数据
StringBuilder sb = new StringBuilder("hello world");
// 将字符序列逆序,可变字符串中的内容随之也发生改变
sb.reverse();
System.out.println(sb); // 输出:"dlrow olleh"

3.6はsetLength方法

setLength(int型 newLength)を文字列の長さを設定する方法。ノートnewLength値はIndexOutOfBoundsExceptionを投げるそうでなければ、0以上でなければなりません。

[例]はsetLength方法

// 创建一个可变字符容器,用来存放数据
StringBuilder sb = new StringBuilder("hello-world");
// 设置字符串长度
sb.setLength(3);
// 输出:内容:"hel" length:3
System.out.println("内容:" + sb + " length:" + sb.length());

3.7その他の一般的な方法

他の一般的な方法のStringBufferクラス、メソッドと完全に一致し、これらのメソッドやクラスの機能。

長さ() 長さ(文字数)を返します。
ストリング(int型開始) 現在の文字に含まれる文字のこのシーケンスのサブシーケンスを含む新しい文字列を返します。
サブストリング(int型開始、int型エンド) 現在含まれている文字のこのシーケンスのサブシーケンスを含む新しい文字列を返します。

PS:最新の無料のマニュアルと教育ビデオの場合は、QQグループ(627407545)を追加してください受けます。

公開された92元の記事 ウォンの賞賛0 ビュー2597

おすすめ

転載: blog.csdn.net/zhoujunfeng121/article/details/104784180