在我的java代码中我正在使用
Plain
任何人都告诉我这个StringBuffer sb = new StringBuffer();
String str = "";
sb.append(str + "abc"); //??
sb.insert(0,(str + "abc")); //??
和sb.append(str + "abc");
答案 0 :(得分:2)
在你的代码中,String str = "";
你看不出差异,但有。{/ p>
请看这段代码:
String str = "abc";
StringBuilder sb = new StringBuilder("123");
sb.append("abc"); // str = "123abc"
// ↑ abc is appended at the end of sb
来自API:
将char数组参数的字符串表示形式追加到此序列。
String str = "abc";
StringBuilder sb0 = new StringBuilder("123");
sb.insert(0, str); // str = "abc123"
// ↑ abc is inserted at position 0 of sb0
StringBuilder sb1 = new StringBuilder("123");
sb.insert(1, str); // str = "1abc23"
// ↑ abc is inserted at position 1 of sb1
StringBuilder sb3 = new StringBuilder("123");
sb.insert(2, str); // str = "12abc3"
// ↑ abc is inserted at position 2 of sb2
StringBuilder sb4 = new StringBuilder("123");
sb.insert(3, str); // str = "123abc"
// ↑ abc is inserted at position 3 of sb2
所以......我们可以推断出:StringBuilder.append == StringBuilder.insert(length)
insert(int offset, String str)
将char数组参数的字符串表示形式插入到此中 序列。 数组参数的字符将插入此序列的内容中,位于偏移量所指示的位置。此序列的长度会增加参数的长度。
答案 1 :(得分:1)
来自doc
appends()
类似名称声音添加到数据类型的末尾,而inserts()
将一个字符串插入另一个
doc中的示例
如果z引用当前内容为的字符串缓冲区对象 " start",然后方法调用z.append(" le")会导致字符串 缓冲区包含" startle",而z.insert(4," le")会改变 字符串缓冲区包含" starlet"。
在您的示例中,偏移量为0,因此它将插入字符串的开头。
注意:通常,如果sb引用StringBuffer的实例,那么 sb.append(x)与sb.insert(sb.length(),x)具有相同的效果。
答案 2 :(得分:1)
append()方法将字符串追加到末尾,但insert()方法在给定的偏移处将一个字符串插入另一个字符串。在append()方法中有单个参数,该参数值附加在字符串的末尾。在insert()方法中有2个参数,一个是offset(int类型),另一个是insert的值。
append()方法的示例: -
StringBuffer sb = new StringBuffer();
sb.append("abc");
sb.append("123");
输出:abc123
insert()方法的示例: -
StringBuffer sb = new StringBuffer();
sb.append(" ABC&#34); sb.insert(2" 123&#34);
输出:ab123c