java.lang.Stringの文字列編集メソッドはインスタンスを変更しないな
javaのStringクラスのメソッドのtoUpperCaseなど、ほとんど(全部か?)の文字列編集メソッドは加工後の文字列を返してくるだけで、インスタンスそのものは変更しないんだな。
つまり、
String s = "abc";
s.toUpperCase();
// toUpperCaseの戻り値は"ABC"だが
// s自身は書き換わらない。
だけでは、sは"abc"
のままということだ。
javaのStringクラスは固定文字列のクラスであって編集してごちゃごちゃするのはStringBufferクラスの仕事。とわかっているんだが、よく「どっちだっけ?」と迷ってしまうのはワタシだけか?
ちなみにjavadocでは、「 ~ この String 内のすべての文字列を大文字に変換します」
となっていて、勘違いして当然かと。toLowerCase然り、replaceAllやreplaceFirstも似たような表現。
一方、replace(char oldChar, char newChar)
では、「この文字列内にあるすべての oldChar を newChar に置換した結果生成される、新しい文字列を返します。
」とちょっとあいまいだけど一応正確に書かれているのだが、先の説明と読み比べて間違いを助長してそうな気もするな。
さてconcat
はどうだっけ?また迷う。
« 休日早朝海へ行く。 | トップページ | ベランダにネコ »
「プログラミング」カテゴリの記事
- 自分で書いたコードが大好き(2020.09.20)
- NPMのヨロコビ(2020.05.14)
- VanilaJS は必須科目(2019.02.25)
- MZ-700フルJavaScriptエミュレータ v1.0.6 をリリース(2019.01.26)
- 戦々恐々GitHub vs BitBucket(2019.01.08)
コメント