2022.12.10
StringBuilderクラス
文字の削除
StringBuilderオブジェクトに格納されている文字列の一部を削除するメソッドが用意されています。
StringBuilder.deleteメソッド
StringBuilder delete( int start, int end )
・このシーケンスの部分文字列内の文字を削除します。 パラメータ start : 開始インデックス(0~) end : 終了インデックス(start~) startからend-1までの文字が削除されます。
Javaソースコード
作成したStringBuilderオブジェクトに格納されている文字列の文字数をコンソール出力するソースコードです。
StringBuilder04.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031
public class StringBuilder04 { public static void main(String[] args) { // インスタンスを作成 StringBuilder sb1 = new StringBuilder( "0123456789" ); // 開始インデックス4、終了インデックス6 sb1.delete( 4, 6 ); // sb1をコンソール出力 System.out.println( sb1 ); // 開始インデックス4、終了インデックス1000 StringBuilder sb2 = new StringBuilder( "0123456789" ); // 開始位置4 sb1.delete( 4, 1000 ); // sb2をコンソール出力 System.out.println( sb2 ); // インスタンスを作成 StringBuilder sb3 = new StringBuilder( "0123456789" ); // 開始インデックス0、終了インデックス9 sb3.delete( 0, 9 ); // sb3をコンソール出力 System.out.println( sb3 ); // インスタンスを作成 StringBuilder sb4 = new StringBuilder( "0123456789" ); // 開始インデックス0、終了インデックスsb4の文字長 sb4.delete( 0, sb4.length() ); // sb4をコンソール出力 System.out.println( sb4 ); } }
実行結果
実行
java StringBuilder04
出力結果
01236789 0123456789 9 ← 空文字
出力結果の1行目は、文字列"0123456789"から開始インデックス4、終了インデックス6で指定した範囲の文字列を削除したもので、"01236789"となります。開始インデックスから終了インデックスの1つ前までが削除されるのでインデックス4~5の2文字が削除されます。
出力結果の2行目は、文字列"0123456789"から開始インデックス4、終了インデックス1000で指定した範囲の文字列を削除したものです。終了インデックスが文字列の長さを超えているので削除処理が行われていません。
出力結果の3行目は、文字列"0123456789"から開始インデックス0、終了インデックス9で指定した範囲の文字列を削除したもので、"9"となります。開始インデックスから終了インデックスの1つ前までが削除されるのでインデックス0~8の9文字が削除されます。開始インデックスが0の場合、deleteメソッドは文字列の先頭から終了インデックスで指定した文字数を削除するメソッドと考えることができます。
出力結果の4行目は、文字列"0123456789"から開始インデックス0、終了インデックスにStringBuilderオブジェクトに格納されている文字列の長さを指定したものです。3行目と同様に開始インデックスが0なので、先頭から文字列の長さを削除するパラメーター指定と考えることができます。先頭から文字列の長さの文字を削除する指定なので結果は""(空文字列)になります。
Javaソースコードの解説
001
public class StringBuilder04 {
クラス名を、StringBuilder04としています。
002
public static void main(String[] args) {
このmainメソッドからプログラムを実行します。
003 004
// インスタンスを作成 StringBuilder sb1 = new StringBuilder( "0123456789" );
文字列"0123456789"を渡してStringBuilderオブジェクトsb1を作成しています。
005 006
// 開始インデックス4、終了インデックス6
sb1.delete( 4, 6 );
007 008
// sb1をコンソール出力
System.out.println( sb1 );
010 011 012 013 014 015 016 017 018 019 020 021 022
// 開始インデックス4、終了インデックス1000 StringBuilder sb2 = new StringBuilder( "0123456789" ); // 開始位置4 sb1.delete( 4, 1000 ); // sb2をコンソール出力 System.out.println( sb2 ); // インスタンスを作成 StringBuilder sb3 = new StringBuilder( "0123456789" ); // 開始インデックス0、終了インデックス9 sb3.delete( 0, 9 ); // sb3をコンソール出力 System.out.println( sb3 );
3行目から8行目までと同様に、StringBuilderオブジェクトsb2とsb3を作成し、削除する範囲を変えて文字列を削除しています。
024 025 026 027 028 029
// インスタンスを作成 StringBuilder sb4 = new StringBuilder( "0123456789" ); // 開始インデックス0、終了インデックスsb4の文字長 sb4.delete( 0, sb4.length() ); // sb4をコンソール出力 System.out.println( sb4 );
StringBuilderオブジェクトsb4を作成し、削除する範囲の終了インデックスをsb4の文字の長さを渡していいます。文字の長さはlengthメソッドで取得することができます。
StringBuilder.lengthメソッド
int length()
・長さ (文字数) を返します。 パラメータ なし
以上です。