文字列は不変のクラスです。文字列を使用して文字列を変更すると、新しい文字列オブジェクトが作成されます。頻繁に変更されると、多くの文字列オブジェクトが生成され、非常に高価です。したがって、JavaはStringBufferクラスを提供します。これは、文字列を変更する際の文字列よりもはるかに効率的です。
Javaには、キャラクター操作を担当する3つのクラスがあります。
public class usingsStringBuffer { / ***一致する文字列を見つけます* / public static void testfindstr(){stringbuffer sb = new StringBuffer(); sb.append( "これはstringbuffer"); //サブストリングが最初に文字列に表示される位置を返します。存在しない場合は、負の数値システムを返します。 //インデックスのパラメーターを設定し、一致する開始位置system.out.println( "sb.indexof(/" is/")=" + sb.indexof( "as"、3)); //文字列内のサブストリングの最後の位置を返します。存在しない場合は、負の数値システムを返します。 // lastIndexofメソッドのパラメーターを設定し、一致するエンド位置システムを指定します。 } / *** stringをインターセプト* / public static void testsubstr(){stringbuffer sb = new StringBuffer(); sb.append( "これはstringbuffer"); //デフォルトの終了位置は、文字列System.out.print( "sb.substring(4)=" + sb.substring(4));の終了です。 //サブストリングメソッドは文字列をインターセプトします。これは、インターセプトシステムの開始位置と終了位置を指定できます。 } / ** *文字列の特定の位置で文字を取得 * / public static void testCharstr(){stringbuffer sb = new StringBuffer( "これはstringbuffer"); System.out.println(sb.Charat(sb.Length()-1)); } / ***さまざまなタイプのデータを文字列のテールに追加* / public static void testappend(){stringbuffer sb = new StringBuffer( "これはStringBuffer!"); sb.append(1.23f); system.out.println(sb.toString()); } / ***文字列のデータを削除* / public static void testdelete(){stringbuffer sb = new StringBuffer( "これはStringBuffer!"); sb.delete(0、5); sb.deletecharat(sb.length()-1); system.out.println(sb.toString()); } / ***さまざまなタイプのデータを文字列に挿入* / public static void testinsert(){stringbuffer sb = new stringbuffer( "これはstringbuffer!"); //指定された位置sb.insert(2、 'w')で文字、文字配列、文字列、さまざまな数値とブール値を挿入できます。 sb.insert(3、new char [] {'a'、 'b'、 'c'}); sb.insert(8、 "abc"); sb.insert(2、3); sb.insert(3、2.3f); sb.insert(6、3.75d); sb.insert(5、9843l); sb.insert(2、true); system.out.println( "testinsert:" + sb.toString()); } / ***文字列にいくつかの文字を置き換える* / public static void testReplace(){stringbuffer sb = new stringbuffer( "これはstringbuffer!"); //文字列内の特定の文字を別の文字列sb.replace(10、sb.length()、 "integer")に置き換えます。 System.out.println( "testReplace:" + sb.toString()); } / *** Reverse String* / public static void reversestr(){stringbuffer sb = new StringBuffer( "これはStringBuffer!"); System.out.println(sb.Reverse()); //リバースメソッドは文字列を逆転させます}}まとめ:
StringBufferは不変のクラスではありません。文字列のコンテンツを変更するとき、新しいオブジェクトは作成されません。したがって、文字列クラスよりも文字列を変更するのに適しています。
StringBufferクラスは、文字列と同じToCharArrayメソッドを提供しません。
StringBufferクラスの交換方法は、文字列クラスの交換方法とは異なります。その置換方法には3つのパラメーターがあります。最初のパラメーターは、置き換えられたサブストリングの開始位置を指定し、2番目のパラメーターは交換されたサブストリングの末端位置を指定し、3番目のパラメーターは新しいサブストリングを指定します。
上記はこの記事に関するものです。すべての人の学習に役立つことを願っています。