Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 理解如何模拟String.substring方法时遇到问题_Java_Arrays_Exception_Char_Substring - Fatal编程技术网

Java 理解如何模拟String.substring方法时遇到问题

Java 理解如何模拟String.substring方法时遇到问题,java,arrays,exception,char,substring,Java,Arrays,Exception,Char,Substring,我必须创建一个自定义类MyString,它模拟String类包含的某些方法,基本上就像字符串一样。唯一的问题是,我不能使用string类中的任何内容,只能在一个方法中使用构造函数 我遇到的问题是如何使substring方法正常工作。我一直在得到一系列的例外情况。我也不知道如何比较两个MyString对象 package hw; import java.lang.reflect.Array; import java.util.Scanner; import java.util.Arrays;

我必须创建一个自定义类MyString,它模拟String类包含的某些方法,基本上就像字符串一样。唯一的问题是,我不能使用string类中的任何内容,只能在一个方法中使用构造函数

我遇到的问题是如何使substring方法正常工作。我一直在得到一系列的例外情况。我也不知道如何比较两个MyString对象

  package hw;
import java.lang.reflect.Array;
import java.util.Scanner;
import java.util.Arrays;

public class MyString {

    private final char[] chars;
    private final int index;
    Scanner sc = new Scanner(System.in);


    public MyString(char[] chars) {
        this.chars = chars;
        this.index = Array.getLength(chars);
    }


    //this is my trouble method
    public MyString substring(int begin, int end) throws Exception{
        char[] t = {};
        int n = 0;

        if(end > index){
            throw new Exception();
        }
        if(begin < 0){
            throw new Exception();
        }
        if(begin > end){
            throw new Exception();
        }

        for(int i=begin-1;i < end;i++){
            t[n] = this.chars[i];
            n++;
            System.out.print(t[n]);
        }
        System.out.println(t);
        MyString myTemp = new MyString(t);
        return myTemp;
    }


    //im not sure how to compare the two
    public boolean equals(MyString s){
        char [] tempA = this.chars;
        char [] tempB = s.chars;
        return true;
    }


    /*
    public static MyString valueOf(int i){
        Mystring string;
        return MyString;
    }
    */

}
包硬件;
导入java.lang.reflect.Array;
导入java.util.Scanner;
导入java.util.array;
公共类MyString{
私有最终字符[]字符;
私有最终整数指数;
扫描仪sc=新的扫描仪(System.in);
公共MyString(char[]chars){
this.chars=chars;
this.index=Array.getLength(字符);
}
//这是我的麻烦方法
public MyString子字符串(int-begin,int-end)引发异常{
char[]t={};
int n=0;
如果(结束>索引){
抛出新异常();
}
如果(开始<0){
抛出新异常();
}
如果(开始>结束){
抛出新异常();
}
for(int i=begin-1;i
子字符串中的方法
t
被创建为长度为0的空数组(
char[]t={};
)。只需更改此声明以匹配结果字符串的大小
char[]t=newchar[end-begin](如果end是独占的)。

您知道ArrayIndexOutOfBoundsException是什么意思吗?请删除解决问题不需要的所有代码。除了
substring()
@TimoSta之外,这包括了类中的大多数其他方法好的,删除了一堆,对此表示抱歉。