大家好,这是我的代码

    for (int i = 0; i <= alignedSeqA.length(); i++) {


            if(alignedSeqA.charAt(i)==alignedSeqB.charAt(i)) {

                alignedSeqPenalty +="0";
            }
            else if(alignedSeqA.charAt(i)=='-'){
                alignedSeqPenalty +="2";


            }else if(alignedSeqB.charAt(i)=='-'){

                alignedSeqPenalty +="2";

            }else if(alignedSeqA.charAt(i)!=alignedSeqB.charAt(i)){

                alignedSeqPenalty +="1";

            }

            }


这是我的错误

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 10
    at java.lang.String.charAt(Unknown Source)
    at New.main(New.java:124)


当我用alignedSeqA.length()(如7)更改integer时,它可以正常工作

即->当我将其更改为7 20100201时输出

我究竟做错了什么?

谢谢

最佳答案

您需要使用:

for (int i = 0; i < alignedSeqA.length(); i++) {


由于第一个索引是0,最后一个索引是alignedSeqA.length() - 1

10-07 12:30