StringBuffer sb = new StringBuffer('A');
System.out.println("sb = " + sb.toString());
sb.append("Hello");
System.out.println("sb = " + sb.toString());
输出:
sb =
sb =你好
但是如果我传递一个字符串而不是字符,它会附加到Hello。 为什么这个奇怪的行为与char?
答案 0 :(得分:6)
没有接受[13-Jun-2015 16:19:54 Europe/Berlin] Array ( [is_attachment] => )
[13-Jun-2015 16:19:54 Europe/Berlin] Array ( [0] => Array ([is_attachment] => ))
[13-Jun-2015 16:19:55 Europe/Berlin] Array (
[is_attachment] => 1
[filename] => 2015-06-12_1048.png
[name] => 2015-06-12_1048.png
[attachment] => ‰PNG
[13-Jun-2015 16:19:55 Europe/Berlin] Array (
[0] => Array ( [is_attachment] => )
[1] => Array (
[is_attachment] => 1
[filename] => 2015-06-12_1048.png
[name] => 2015-06-12_1048.png
[attachment] => ‰PNG
[13-Jun-2015 16:19:55 Europe/Berlin] Array (
[is_attachment] => 1
[filename] => 5812548c-d445-4a18-a56d-e2698fdfd99b.jpg
[name] => 5812548c-d445-4a18-a56d-e2698fdfd99b.jpg
[attachment] => ÿØÿà
[13-Jun-2015 16:19:55 Europe/Berlin] Array (
[0] => Array ( [is_attachment] => )
[1] => Array (
[is_attachment] => 1
[filename] => 2015-06-12_1048.png
[name] => 2015-06-12_1048.png
[attachment] => ‰PNG
的构造函数。您最终得到int
constructor,因为Java会自动将您的char
转换为char
,从而指定初始容量。
int
比照。这个最小的例子:
/**
* Constructs a string buffer with no characters in it and
* the specified initial capacity.
*
* @param capacity the initial capacity.
* @exception NegativeArraySizeException if the <code>capacity</code>
* argument is less than <code>0</code>.
*/
public StringBuffer(int capacity) {
super(capacity);
}
输出:
public class StringBufferTest {
public static void main(String[] args) {
StringBuffer buf = new StringBuffer('a');
System.out.println(buf.capacity());
System.out.println((int) 'a');
StringBuffer buf2 = new StringBuffer('b');
System.out.println(buf2.capacity());
System.out.println((int) 'b');
}
}
尽管
97
97
98
98
初始容量为StringBuffer buf3 = new StringBuffer("a");
System.out.println(buf3.capacity());
。
您可能会将17
与CharSequence
混淆(确实存在构造函数),但这些是完全不同的两种情况。
答案 1 :(得分:0)
你使用了下面提到的构造函数。
public StringBuffer(int capacity)
构造一个字符串缓冲区,其中没有字符和指定的初始容量。
参数: 容量 - 初始容量。
参见java doc你没有任何带有char输入参数的构造函数。