👩🏼🏫
【Java】StringBuilderクラスのメソッド
はじめに
Java Silverの受験にあたって、勉強したことをまとめました。
Stringクラスのメソッドに関する記事はこちら↓
StringBuilderクラスとは
- 文字列を扱うクラス
- Stringクラスと違い、変数に格納した文字列を変更できる
(Stringクラスは変更するたびに新しいインスタンスが生成されていた!) - はじめから 16文字分のメモリ領域(バッファ) を持つ
どういうことかというと…
StringBuilder sb = new StringBuilder("abc");
System.out.println(sb.capacity()); // 19
// capacity()は現在の容量を戻すメソッド
// はじめから持っている16文字+abcの3文字で、出力は[19]になる
StringBuilderとStringの違い
- StringBuilder:可変(mutable)
→ インスタンス化のあとに内容を変更できる - String:不変(immutable)
→ インスタンス化のあとに内容を変更できない
(ので、変更するたびに新しいインスタンスが生成されていた)
可変と不変は、以下の記事が分かりやすかったです。
append(String str)
- 引数で渡された文字列を、現在の文字列に追加する
StringBuilder sb = new StringBuilder("ab");
System.out.println(sb.append("cd")); // abcd
replace(int start, int end, String str)
- 第1引数から第2引数の1つ前の範囲の文字を、第3引数で指定した文字に置き換える
- 文字列の先頭は0番目
StringBuilder sb = new StringBuilder("abcde");
System.out.println(sb.replace(1, 3, "A")); // aAde
// 1番目から2番目の文字[bc]が、[A]に置き換わるので、[aAde]になる
reverse()
- 文字列の順番を逆にしたもので置き換える
StringBuilder sb = new StringBuilder("abc");
System.out.println(sb.reverse()); // cba
insert(int offset, String str)
- 引数で指定された文字列を、引数で指定された文字の前に挿入する
- 文字列の先頭は0番目
StringBuilder sb = new StringBuilder("abcde");
System.out.println(sb.insert(2, "AB")); // abABcde
delete(int start, int end)
- 第1引数から第2引数の1つ前の範囲の文字を削除する
- 文字列の先頭は0番目
StringBuilder sb = new StringBuilder("abcde");
System.out.println(sb.delete(0, 3)); // de
参考
おまけ
日本オラクル株式会社のYouTubeが分かりやすかったです!
SE8で少し内容が古いですが、ポイントがギュッとまとまっていて分かりやすかった〜
これで全体を把握してから、黒本や紫本をやればよかったなあ🥲
Discussion