Java 理解如何模拟String.substring方法时遇到问题
我必须创建一个自定义类MyString,它模拟String类包含的某些方法,基本上就像字符串一样。唯一的问题是,我不能使用string类中的任何内容,只能在一个方法中使用构造函数 我遇到的问题是如何使substring方法正常工作。我一直在得到一系列的例外情况。我也不知道如何比较两个MyString对象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;
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之外,这包括了类中的大多数其他方法好的,删除了一堆,对此表示抱歉。