我必须编写一个程序,按照方法中的参数,将Strings添加到彼此之间。程序不起作用,我不知道为什么。耽误您时间,实在对不起。问题在main in ap.append(" ma kota", 3).append( " i psa", 2);中。我不能改变主旋律。
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);
}
}发布于 2014-04-17 09:27:27
public StringBuffer append(String str, int n) {
while(n > 0){
sb.append(str);
n--;
}
return sb;
}应改为
public Appender append(String str, int n) {
while(n > 0){
sb.append(str);
n--;
}
return this;
}因为StringBuffer没有方法附加(字符串s,int n)
发布于 2014-04-17 09:27:39
append(String appended, 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();
}
}
}发布于 2014-04-17 09:28:42
您应该从com.test.FunPrime.Appender.append(String, int)返回这个(当前对象)
喜欢
public Appender append(String str, int n) {
while(n > 0){
sb.append(str);
n--;
}
return this;
}https://stackoverflow.com/questions/23129235
复制相似问题