【Java】String、StringBuilderクラスのreplaceメソッド違いがややこしい!
今回のテーマ
文字を置換するreplaceメソッドがStringクラスとStringBuilderクラスで
文法が違って引っかかってしまったので記事を残します。
記事対象者
・Javaを学び始めた初学者
・1Z0-815の資格取得を目指している方
replaceメソッドの文法について
まずは文法についてはStringクラス、StringBuilderクラスともに
以下の通りです。
比較のため、Stringクラスも記載しました。
StringBuilderクラスは引数を3つ設定しないといけないことがわかります。
1.Stringクラス
置換する文字列.replace("置換する文字(列)","置換後の文字(列)"); // 文字列
2.StringBuilderクラス
置換する文字列.replace("置換開始位置","置換終了位置",置換後の文字(列)");
サンプルコード
次に簡単なサンプルコードを書いて動かしてみる。
下記例だと0番目から1番目の文字をqに変更するというものです。
ややこしいですが"置換終了位置"は-1の位置までになるのでここでは0
つまり最初のaを置換することになります。(この理解ができなかった・・)
ちなみに置換終了位置を2にするとbも含まれるのでabがqに置換される。
StringBuilder sb =new StringBuilder("abcd"); sb.replace(0,1,"q"); System.out.println(sb); // 出力 qbcd StringBuilder sb =new StringBuilder("abcd"); sb.replace(0,2,"q"); System.out.println(sb); // 出力 qcd
まとめ
クラスによってメソッドの文法が違うものが
Javaでは他にもあるとのことです。
試験的にはしっかり覚えておくことが重要ですが 最低限エラーが出たときに気づけるレベルで頭の片隅に置いておきたいです
参考サイト
文字列を置換!Javaでreplaceを使う方法【初心者向け】 | TechAcademyマガジン
学習文献
オラクル認定資格教科書 Javaプログラマ Silver SE11(試験番号1Z0-815)
- 作者:山本 道子
- 発売日: 2019/11/18
- メディア: 単行本(ソフトカバー)