首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StringBuffer和appender方法

StringBuffer和appender方法
EN

Stack Overflow用户
提问于 2014-04-17 09:22:01
回答 4查看 549关注 0票数 2

我必须编写一个程序,按照方法中的参数,将Strings添加到彼此之间。程序不起作用,我不知道为什么。耽误您时间,实在对不起。问题在main in ap.append(" ma kota", 3).append( " i psa", 2);中。我不能改变主旋律。

代码语言:javascript
复制
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;
    }
}

这是我的主要:

代码语言:javascript
复制
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);
    }
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-04-17 09:27:27

代码语言:javascript
复制
public StringBuffer append(String str, int n) {
    while(n > 0){
        sb.append(str);
        n--;
    }
    return sb;
}

应改为

代码语言:javascript
复制
public Appender append(String str, int n) {
    while(n > 0){
        sb.append(str);
        n--;
    }
    return this;
}

因为StringBuffer没有方法附加(字符串s,int n)

票数 1
EN

Stack Overflow用户

发布于 2014-04-17 09:27:39

append(String appended, int n)方法属于Appender,而不是StringBuilder,因此必须返回它,而不是sb

代码语言:javascript
复制
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();
        }

    }
}
票数 2
EN

Stack Overflow用户

发布于 2014-04-17 09:28:42

您应该从com.test.FunPrime.Appender.append(String, int)返回这个(当前对象)

喜欢

代码语言:javascript
复制
public Appender append(String str, int n) {
        while(n > 0){
            sb.append(str);
            n--;
        }
        return this;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23129235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档