2016-10-17 122 views
-2

StringBuffer构造函数初始化为51,但至少添加了584个字符。字符串缓冲区声明不足

我得到上述错误。此代码

StringBuilder de = new StringBuilder("=================================\n"); de.append("Selection from Final Module List\n"); 
de.append("=================================\n"); 
for (String d : moduleFilterColumnsWithModuleNameAndAddress) { 
    de.append(d).append(" $ "); 
} 
de.append("\n"); 
de.append("-------------------------------------------------‌​--------------------‌​---------------\n"); 

我不能使用下面的构造函数,因为我找不到,我要追加

新的StringBuilder(51)字符串的最大尺寸;

请帮我解决上述代码的声纳问题。

enter image description here

请找截图中看到错误

+0

你能粘贴实际的代码?另外考虑使用[StringBuilder](https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html)。你的错误很奇怪,并且听起来与字符串的大小无关。 – matt

+0

http://stackoverflow.com/q/31720833/5395773 – Venkat

+0

可能的重复您的问题是不可理解的,请清楚地提及您要问的问题。 –

回答

0

如果你想使用一个StringBuffer你可能要追加一个String。用它来确定缓冲区的初始大小。

String myStringToAppend = "whatever"; 
StringBuffer sb = new StringBuffer(myStringToAppend); 
//append and append 
String result = sb.toString(); 

看到您的错误后,我建议您清理该项目。右击该项目并选择clean project

+0

为什么你想要做这样的事情?你看到使用StringBuffer的优势吗?除非在sb.toString() –

+1

之前有东西被追加这就是我写的。而不是评论追加字符串。在Java 7中,我们这样做了。 – xenteros

+0

是的,如果你追加的东西很好。否则,它只是导致更多的内存 –

0

我不使用下面的代码获得这样的错误,

com.test包;

公共类StringMethods {

public static void main(String[] args) 
{ 
    StringBuilder de = new StringBuilder(51); 
    de.append("=================================\n"); 
    de.append("Selection from Final Module List\n"); 
    de.append("=================================\n"); 
    de.append("\n"); 
    de.append("-------------------------------------------------‌​--------------------‌​---------------\n"); 

    System.out.println(de.toString()); 


} 

}

===

+0

http://stackoverflow.com/questions/31720833/insufficient-string-buffer-declaration - 即使我们使用默认构造函数,我们也会得到错误 – user3797234