deleteメソッド - StringBuilderクラス - 萌えJava超入門
StringBuilderクラス

deleteメソッド

自身の文字列の一部を削除します。

delete

萌えJava超入門
insertメソッドと同じ感覚で使える。
やはり削除対象を指定するために
indexOf や lastIndexOf が
欠かせない。
目次

1. deleteメソッド


開始位置(start)と、終了位置(end)を引数に与えると、その間にある文字を削除します。
戻り値は、インスタンス自身です。

 public StringBuilder delete(int start, int end)

deleteメソッド 書式
StringBuilder sb1;
int start;
int end;
 StringBuilder sb2 = sb1.delete(start, end);




2.サンプルコード


項目行を削除して、各行の行番号も削除するサンプルコードです。
前のページで紹介した Sample09_01.java を、逆向きに行うプログラムです。
行の先頭から TAB(\t) までの文字を削除します。
行の先頭は、「改行(\n) の一文字前」で特定しています。
//Sample10_01.java

class Sample10_01{
    public static void main(String[] args){

      //変更前のデータ
      StringBuilder sb = new StringBuilder();
      sb.append("NO\t氏名\n");
      sb.append("1\t黄瀬涼太\n");
      sb.append("2\t緑間真太郎\n");
      sb.append("3\t青峰大輝\n");
      sb.append("4\t紫原敦\n");
      sb.append("5\t赤司征十郎\n");
      System.out.println(sb.toString());
      System.out.println("-----------");

      /*項目行の削除*/

      int start = 0;
      int end = sb.indexOf("\n"); //最初の改行文字
      end++; //改行文字の後ろ

      sb.delete(start, end);
      System.out.println(sb.toString());
      System.out.println("-----------");

      /*各行の行番号を削除*/

      end = sb.lastIndexOf("\t"); //後から検索して最初のTAB
      while(end != -1){
          start = sb.lastIndexOf("\n", end); //end より前にある最初の改行
          start++; //改行の後ろ (start==-1 の場合は start==0 として扱う)
          end++; //TABの後ろ
          sb.delete(start, end);
          end = sb.lastIndexOf("\t"); //後から検索して最初のTAB
      }

      System.out.println(sb.toString());
    }
}

コマンドライン
>cd ws
ws>javac -encoding UTF-8 Sample10_01.java
ws>java Sample10_01
NO      氏名
1       黄瀬涼太
2       緑間真太郎
3       青峰大輝
4       紫原敦
5       赤司征十郎

-----------
1       黄瀬涼太
2       緑間真太郎
3       青峰大輝
4       紫原敦
5       赤司征十郎

-----------
黄瀬涼太
緑間真太郎
青峰大輝
紫原敦
赤司征十郎


萌えJava超入門 萌えJava超入門
このソースちょっと
キビシくない?



萌えJava超入門
ゴメン。
例題がややこしかった。




お疲れ様でした。




© 2019 awasekagami