大家好,这是我的代码
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