' P '

whatever I will forget

Java substringメソッドとStringBuilder

文字列操作系の問題多い!

substringおさらい

substringで困ったのおさらい

  • 引数は、開始index, 終了index`

    終了indexの文字列は含まない

    pythonでも同じ。

  • 引数を1つにすると、それ以降の文字全てを取得する

    追記 5/25

    絵の例で、もしindex8-9の文字列を取り出したいとき、単純にstr.substring(8);と記述しましょう

  • もちろんだけど、元々のstring型変数は何も値は変わらない

気になってたStringBuilderを使ってみた

なんかググると結構でてくるこのStringBuilder。知ってると知ってないじゃ結構差がつきそうですね。。
いままでいちいちfor文でlength分回したりしてたのがガーンって感じ。

宣言

StringBuilder sb = new StringBuilder(String文字列);
sb.setCharAt(3,'0'); // index3を0に置き換え
System.out.println(sb);

やばい、簡単すぎ!しかもimportも何もしないでいいとかやばい。
練習して、使っていこうと思います。

参考

java-reference.com

追記 6/18

StringBuilderのArrayを定義した際は、それぞれのArrayに対してnewしないといけません。
下記ようにまずarrayの箱だけ必要分作って、その後それぞれに対してnewしてあげる感じ。
箱作っだけの状態でindexにアクセスしようとすると、nullポインターが返ります。(30分くらい悩んだ)

StringBuilder[] sb = new StringBuilder[10];
for(int i=0; i<sb.length; i++) {
  sb[i] = new StringBuilder();
}