我必须制作一个程序,将方法中的参数与Strings
相加。程序不工作,我不知道为什么。谢谢你的时间。问题出在main
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);
}
}
答案 0 :(得分:2)
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();
}
}
}
答案 1 :(得分:1)
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没有方法append(String s,int n)
答案 2 :(得分:0)
您应该从com.test.FunPrime.Appender.append(String, int)
喜欢
public Appender append(String str, int n) {
while(n > 0){
sb.append(str);
n--;
}
return this;
}
答案 3 :(得分:-1)
您也可以使用org.apache.commons.lang.StringUtils#repeat
。
例如重复5次:
String result = StringUtils.repeat("重复此字符串",",",5);
没有第二个参数的版本(分隔符",")也可用。