【问题标题】:Creating my own String class / substring method [duplicate]创建我自己的字符串类/子字符串方法[重复]
【发布时间】:2016-04-21 11:24:07
【问题描述】:

我正在做一个练习,其中包括创建我自己的 String 类的实现,以及该类中存在的一些方法。我在创建返回子字符串的工作方法时遇到了一些麻烦。到目前为止,我的类实现如下所示:

public class MyString2 {

    private String s;

    public MyString2(String s) {
        this.s = s;
    }

    public MyString2 substring(int begin) {

        String substring = "";

        for (int i = begin; i < s.length(); i++) {
            substring += s.charAt(i);
        }
        return new MyString2(substring);
    }

}

该方法背后的想法非常简单;

创建一个空白子字符串,然后从所选索引开始连接输入字符串中的每个字符。下面是测试类的主要方法:

public static void main(String[] args) {

        MyString2 s1 = new MyString2("string");     
        MyString2 substring = s1.substring(3);

        System.out.println(substring);

    }

程序返回ch10.MyString2@2a139a55,谁能告诉我我的程序出了什么问题?

【问题讨论】:

    标签: java string substring


    【解决方案1】:

    目前,您正在打印对象而不是其内容。您可以在 MyString2 类中覆盖 toString() 以更改此行为:

    @Override
    public String toString() {
        return s;
    }
    

    【讨论】:

    • 非常感谢,这就像一个魅力!我自己可能应该想到这一点,但在练习描述中,toString() 方法不在该类应包含的方法列表中。
    • 这可能是因为它不是您自己实现的方法,而是Java中的每个对象都是docs.oracle.com/javase/8/docs/api/java/lang/Object.html的子类,其中包含toString()hashCode()equals()等方法,所有这些你都可以用你自己的实现覆盖。
    猜你喜欢
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    相关资源
    最近更新 更多