回答編集履歴

1

文字列連結絡み追加

2016/08/26 01:31

投稿

swordone
swordone

スコア20651

test CHANGED
@@ -47,3 +47,39 @@
47
47
  }
48
48
 
49
49
  ```
50
+
51
+
52
+
53
+ 文字列連結関連
54
+
55
+ Javaでは"+"による文字列連結はStringBuilder(あるいはStringBuffer)によって実装されている。つまり
56
+
57
+ ```java
58
+
59
+ str += "->" + next;
60
+
61
+ ```
62
+
63
+ は次と同じ意味である。
64
+
65
+ ```java
66
+
67
+ str = new StringBuilder(str).append("->").append(next).toString();
68
+
69
+ ```
70
+
71
+ StringBuilderのappend(Object)は、引数Objectを引数にString.valueOf(Object)を呼び出した返り値が使われる。String.valueOf(Object)の中身は
72
+
73
+ ```java
74
+
75
+ //Stringクラス内
76
+
77
+ public static String valueOf(Object o) {
78
+
79
+ return o == null ? "null" : o.toString();
80
+
81
+ }
82
+
83
+ ```
84
+
85
+ となる(ちなみに、System.out.println()にオブジェクトを渡した際に出力する文字列を決定するのもこのメソッド)。つまり、引数オブジェクトがnullでないかぎり、引数に対してtoString()を呼び出した結果の文字列が追加される。