我正试图找出一项任务的一部分,我已经有一段时间都在拼命工作了。我试着把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)));
}
}发布于 2014-10-20 19:33:41
您想要小于1的大小,所以:if (pos1 >= linkedList.size()) {。
当pos1 == linkedList.size()的时候,它将被禁止。
https://stackoverflow.com/questions/26473454
复制相似问题