teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

文字列連結絡み追加

2016/08/26 01:31

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -22,4 +22,22 @@
22
22
  }
23
23
  return str;
24
24
  }
25
- ```
25
+ ```
26
+
27
+ 文字列連結関連
28
+ Javaでは"+"による文字列連結はStringBuilder(あるいはStringBuffer)によって実装されている。つまり
29
+ ```java
30
+ str += "->" + next;
31
+ ```
32
+ は次と同じ意味である。
33
+ ```java
34
+ str = new StringBuilder(str).append("->").append(next).toString();
35
+ ```
36
+ StringBuilderのappend(Object)は、引数Objectを引数にString.valueOf(Object)を呼び出した返り値が使われる。String.valueOf(Object)の中身は
37
+ ```java
38
+ //Stringクラス内
39
+ public static String valueOf(Object o) {
40
+ return o == null ? "null" : o.toString();
41
+ }
42
+ ```
43
+ となる(ちなみに、System.out.println()にオブジェクトを渡した際に出力する文字列を決定するのもこのメソッド)。つまり、引数オブジェクトがnullでないかぎり、引数に対してtoString()を呼び出した結果の文字列が追加される。