java.lang.StringIndexOutOfBOundsException错误我做错了什么

时间:2014-03-13 01:26:26

标签: java javascript eclipse

public int countMatchesWithRightShift(DNAStrand other, int shift){

    for (j = 0; j < (data.length()); ++j){
        other.data.charAt(j = other.data.charAt(j)+shift);
    }
        for (i = 0; i <other.length()-data.length(); ++i){

    if (other.data.charAt(i) == 'T' && data.charAt(i) == 'A'){
        rightShift++;
    }
    else if (other.data.charAt(i) == 'A' && data.charAt(i) == 'T'){
        rightShift++;
    }
    else if (other.data.charAt(i) == 'C' && data.charAt(i) =='G'){
        rightShift++;
    }
    else if (other.data.charAt(i) == 'G' && data.charAt(i) =='C'){
        rightShift++;
    }
}

    return rightShift;
}

这是为了比较两个不同的DNA链,其中一个被转换为int量。 当我运行给我们的specchecker时,测试不断给出我的出界错误。我不确定我做错了什么

1 个答案:

答案 0 :(得分:1)

这条线是狡猾的

other.data.charAt(j = other.data.charAt(j)+shift);

是指通过执行

来设置字符串中char的值
other.data.charAt(j) = other.data.charAt(j)+shift;

这也是不可能的,因为字符串是不可变的

String other.data = other.data.substring(0,j) + other.data.charAt(j)+shift 
                      +other.data.substring(j + 1);

//关闭索引的警告测试(这里没有IDE)