【问题标题】:I have to write a code that uses classes for DNA, RNA, and Protein. Im stuck on the first part [closed]我必须编写一个使用 DNA、RNA 和蛋白质类的代码。我坚持第一部分[关闭]
【发布时间】:2013-10-31 19:17:00
【问题描述】:

我必须将用户输入的 int 作为 dna 序列的长度。我试图返回 numberString,但每次我的数组都有问题

司机

import java.util.Scanner;
public class GenBank1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in = new Scanner(System.in);
        System.out.println("Enter a desired DNA sequence length, between 1 and 10 please:");
        int inputLength = in.nextInt();
        System.out.println(inputLength);
        System.out.println(DNA1.toNumString(inputLength));

        int[] baseId = new int[inputLength];
        for(int i=0;i<=baseId.length;i++){
            baseId[i]=inputLength;
            int rndmr = (int)(4.0*Math.random());
            baseId[i]-=rndmr;
                System.out.print(baseId[i]+1 + ",");
        }    
    }    
}

【问题讨论】:

  • 请更好地描述您的问题。正在发生的确切问题是什么?你想发生什么?
  • 您必须更具描述性。比如,你遇到了什么问题?
  • 查看sscce.org 以获取有关如何提出好问题的提示,然后编辑问题。
  • ArrayIndexOutOfBoundsException吗?

标签: java arrays string class methods


【解决方案1】:
for(int i=0;i<=baseId.length;i++)

你应该这样做

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

因为,在具有(比如说)10 个条目的数组中,它们的索引为 0 到 9。尝试查找 array[10] 将引发异常。

【讨论】:

    【解决方案2】:

    如果不知道 DNA1 类是什么以及程序的功能是什么,我将无法进一步评论。但是,是的,您将遇到 ArrayIndexOutOfBoundsException 来纠正此问题,以下应该可以工作

    import java.util.Scanner;
    public class GenBank1 {
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in = new Scanner(System.in);
        System.out.println("Enter a desired DNA sequence length, between 1 and 10 please:");
        int inputLength = in.nextInt();
        System.out.println(inputLength);
        System.out.println(DNA1.toNumString(inputLength));
    
        int[] baseId = new int[inputLength];
        for(int i=0;i<baseId.length;i++){  
            baseId[i]=inputLength;
            int rndmr = (int)(4.0*Math.random());
            baseId[i]-=rndmr;
                System.out.print(baseId[i]+1 + ",");
        }    
    }    
    } 
    

    您的 FOR 循环的结束子句希望从 0 -> 长度开始,这将是错误的,因为您将遍历 Array 索引。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-22
      • 2018-11-08
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      • 2013-01-16
      • 1970-01-01
      相关资源
      最近更新 更多