gpt4 book ai didi

java - 增强 for 循环上的 ArrayIndexOutOfBounds

转载 作者:行者123 更新时间:2023-12-01 22:38:58 29 4
gpt4 key购买 nike

我正在试图弄清楚作业的一部分,但我已经把头撞在墙上有一段时间了。我正在尝试将 DNA 序列转录为 RNA 序列。然而,我收到了 ArrayOutOfBoundsException。我不熟悉使用增强的 for 循环进行迭代,因此我的错误可能隐藏在某个地方。在满足 if 语句参数之前,它不会发生。

private String dnaToRNA(String input) {

StringBuilder b = new StringBuilder();
char[] arr = input.toCharArray();
for (char a : arr) {
if (a == 'T') {
arr[a] ='U';

}
}
for (char a : arr) {
if (a == 'A'){
b.append ('U');
}

else if (a == 'U') {
b.append('A');
}

else if (a == 'C') {
b.append('G');
}

else if (a == 'G') {
b.append('C');
}

}


return b.reverse().toString();
}

}

public void transcribe(int pos1) {

if (pos1 > linkedList.size()) {
System.out.println("Position selected out of range");
return;
}
if (linkedList.get(pos1) != null && isValidDNA(linkedList.get(pos1))) {
linkedList.set(pos1, dnaToRNA(linkedList.get(pos1)));
}
}

最佳答案

问题出在语句arr[a] ='U';

问题是 char 在内部表示为 int 并且 'T' 等于 84,因此你会得到一个 ArrayIndexOutOfBoundsException。您需要使用传统计数器对其进行迭代:

for (int i = 0; i < arr.length; i++) {
if (arr[i] == 'T') {
arr[i] ='U';
}
}

关于java - 增强 for 循环上的 ArrayIndexOutOfBounds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26473454/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com