我必须编写一个程序,将字符串
相互添加,数量与方法中的参数所述相同。程序无法运行,我不知道为什么。谢谢你的时间。问题出在 ap.append("ma kota", 3).append( "i psa", 2);
中的 main
中。我无法对主要内容进行更改。
public class Appender {
private StringBuffer sb;
public Appender(){
sb = new StringBuffer();
}
public Appender(String s){
sb = new StringBuffer(s);
}
public StringBuffer append(String str, int n) {
while(n > 0){
sb.append(str);
n--;
}
return sb;
}
public String toString(){
String s = sb.toString();
return "" + s;
}
}
这是我的主要内容:
public class Main {
public static void main(String[] args) {
Appender ap = new Appender("Ala");
ap.append(" ma kota", 3).append( " i psa", 2);
System.out.println(ap);
ap.append(" ojej", 3);
System.out.println(ap);
}
}
最佳答案
append(Stringappend, int n)
方法属于Appender
,而不是StringBuilder
,所以你必须返回它,而不是sb
public class HelloWorld{
public static void main(String []args){
System.out.println("Hello World");
Appender ap = new Appender("Ala");
ap.append(" ma kota", 3).append( " i psa", 2);
System.out.println(ap);
ap.append(" ojej", 3);
System.out.println(ap);
}
public static class Appender {
private StringBuffer sb;
public Appender(){
sb = new StringBuffer();
}
public Appender(String s){
sb = new StringBuffer(s);
}
public Appender append(String str, int n) {
while(n > 0){
sb.append(str);
n--;
}
return this;
}
public String toString(){
return sb.toString();
}
}
}
关于java - StringBuffer 和appender 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23129235/