所以我正在为"MiniString"创建一个类,它只是对象MiniString的实例方法,每个MiniString都有一个char []实例变量.在测试我的方法时,我无法找到我的substring()方法出错的地方.有两个子字符串方法,其中一个采用int参数,另一个采用两个int参数.我一直在一个int参数方法上得到错误.substring方法应该返回一个新的MiniString,它由int参数指定的目标Ministring中的位置和目标MiniString的末尾之间的字符组成.我在JUnit Tester中遇到的错误如下:
java.lang.ArrayOutofBoundsException:22
at MiniString.substring(MiniString.java:141)
at MiniString.substring(MiniString.java:159)
Run Code Online (Sandbox Code Playgroud)
这是我的MiniString对象的构造函数:
private char[] miniscule;
MiniString(char[] array){
int i = 0;
miniscule = new char[array.length];
while (i < array.length){
miniscule[i] = array[i];
i++;
}
}
MiniString(String string){
int i = 0;
miniscule = new char[string.length()];
while (i < string.length()){
this.miniscule[i] = string.charAt(i);
i++;
}
}
Run Code Online (Sandbox Code Playgroud)
这是两个substring()方法的代码:
public MiniString substring(int start, int end){
int i = start;
if (end > start){
char[] temp = new char[end - start];
MiniString range = new MiniString(temp);
while …Run Code Online (Sandbox Code Playgroud)