关于如何用Java构建自己的StringBuilder类的建议?

关于如何用Java构建自己的StringBuilder类的建议?,java,string,Java,String,这是一个家庭作业问题,所以我不是在寻找直接的答案,但我完全不知道从哪里开始这个问题。我的任务是创建自己的StringBuilder类实现,称为MyStringBuilder。我得到了几个创建此类必须使用的方法 我一直在阅读关于StringBuilder类的文章,试图弄明白如何实现它,但我感觉就像一开始一样迷失了方向。以下是我们获得的方法: public class MyStringBuilder { public MyStringBuilder(String s) { }

这是一个家庭作业问题,所以我不是在寻找直接的答案,但我完全不知道从哪里开始这个问题。我的任务是创建自己的StringBuilder类实现,称为MyStringBuilder。我得到了几个创建此类必须使用的方法

我一直在阅读关于StringBuilder类的文章,试图弄明白如何实现它,但我感觉就像一开始一样迷失了方向。以下是我们获得的方法:

public class MyStringBuilder {

   public MyStringBuilder(String s) {

   }

   public MyStringBuilder(char[] chars) {

   }

   public MyStringBuilder append(MyStringBuilder s) {

   }

   public MyStringBuilder append(int i) {

   }

   public MyStringBuilder insert(int offset, MyStringBuilder s) {

   }

   public int length() {

   }

   public MyStringBuilder reverse() {

   }

   public MyStringBuilder toLowerCase() {

   }

   public MyStringBuilder toUpperCase() {

   }

   public MyStringBuilder substring(int begin, int end) {

   }

   public MyStringBuilder substring(int begin) {

   }

   public String toString() {

   }
}

编辑1:我还应该提到,我们不允许使用任何已经可用的Java方法。每个方法的所有功能都必须由我来编写,这使得这更加困难

StringBuilder本质上是一个不断增长的字符列表<代码>StringBuilder在JDK中的实现有两个字段:

/**
 * The value is used for character storage.
 */
char[] value;

/**
 * The count is the number of characters used.
 */
int count;
value
数组的大小始终不小于
count
。这里的要点是StringBuilder在其内部数组中保留一些空白空间以提高性能

让我们看看
append(charc)
方法的实现:

public AbstractStringBuilder append(char c) {
    ensureCapacityInternal(count + 1);  // <----
    value[count++] = c;
    return this;
}
publicAbstractStringBuilderAppend(charc){

ensureCapacityInternal(count+1);//想想
StringBuilder
实际上是什么——从概念上讲,它只是一种获取字符串并附加到其他不同字符串上的方法。例如,它可以是一个字符数组(注意,您也可以查看源代码)@DaveNewton谢谢!我试着读了一点源代码,但老实说,我还是不太清楚,这很不幸。我正在努力弄清楚如何开始。好吧,你应该做的第一件事可能是创建一个新的
char
-数组来存储
StringBuilder
的内容。然后,实现操作该数组的方法。例如,
toUpperCase
方法可以迭代数组的所有元素并用它们的大写表示替换它们,
length
方法只返回
array.length
,等等。。。