Java程序可以同时使用三个方法并每次调用每个方法

Java程序可以同时使用三个方法并每次调用每个方法,java,methods,Java,Methods,我试图创建一个Java程序来提示用户输入DNA序列并 使用validate()方法。然后,在DNA被验证后,我想得到我的验证DNA的长度 使用另一个getLength()方法进行排序。然后,我想使用count()方法来计算我的 验证DNA序列,计算每个序列的百分比。这就是我目前得到的。我没有得到结果。我可以得到DNA,但长度和计数不能给出结果。有人能帮忙吗 import java.util.Scanner; public class dnaseq { // using first

我试图创建一个Java程序来提示用户输入DNA序列并 使用validate()方法。然后,在DNA被验证后,我想得到我的验证DNA的长度 使用另一个getLength()方法进行排序。然后,我想使用count()方法来计算我的 验证DNA序列,计算每个序列的百分比。这就是我目前得到的。我没有得到结果。我可以得到DNA,但长度和计数不能给出结果。有人能帮忙吗

 import java.util.Scanner;

public class dnaseq
{


   // using first method validate() - prompt the user for the DNA and confirms it is DNA seq  //
   public static void Validate(String[] args)
   {


    Scanner user_input = new Scanner(System.in);
    System.out.print("Enter DNA: ");
    String dna = user_input.next();


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

        char base=dna.charAt(i);


        if (base !='T' && base !='A' && base !='C' && base !='G'){
        System.out.println ("Wrong input!");
    }

    else { 
        System.out.println ( dna);

    }}}

    //After getting the dna sequence, use getLength() to get the length of dna seq//
    public int getLength(){
        int length=0;
        int n=0;

         for(int j = 0; j < dna.length(); j++){
             char base=dna.charAt(j);


             if (base !='T' && base !='A' && base !='C' && base !='G'){
            System.out.println (+n);

         }
    return n;}

    //use TAcount to get % of T and A bases in your DNA seq above// 
    static double TAcount( double count) {
              double count = 0.0;

               for(int k = 0; k < dna.length(); k++){
                   char base=dna.charAt(k);
                      if (base !='T'){
                                count = count + 1.0;} 
                        if (base !='A'){ 
                                 count = count + 1.0;}
                          }
                        if (dna.length()> 0){
                            T_base = dna.TAcount('T');
                            A_base = dna.GTcount('A');
                            T_percent = G_base / dna.length() *100;
                            A_percent = T_base / dna.length() *100;
                        }




                      System.out.println(T_percent);
                      System.out.println(A_percent);

    }
import java.util.Scanner;
公共类dnaseq
{
//使用第一种方法validate()-提示用户输入DNA并确认它是DNA seq//
公共静态无效验证(字符串[]args)
{
扫描仪用户输入=新扫描仪(System.in);
系统输出打印(“输入DNA:”;
字符串dna=user_input.next();
对于(int i=0;i0){
T_base=dna.TAcount('T');
A_base=dna.GTcount('A');
T_百分比=G_碱基/dna.length()*100;
A_%=T_碱基/dna.length()*100;
}
系统输出打印项次(T_百分比);
系统输出打印项次(百分比);
}

您在getLength方法中声明了TAcount方法。TAcount接受参数count*并且您在方法中声明了另一个同名变量。
String dna=user\u input.next()
验证中声明,您尝试以不同的方法访问DNA。在方法id中声明的变量称为局部变量,其他方法无法访问。seg在哪里?您正在尝试访问该变量,但我没有看到您在任何地方声明它。试着解决这个问题,让我们知道你在哪里卡住了

这是什么

T_base = dna.TAcount('T');
A_base = dna.GTcount('A');
T_percent = G_base / dna.length() *100;
A_percent = T_base / dna.length() *100;

没有数据类型的变量。

您的代码存在多个问题

a) 当您已经在验证DNA序列时,为什么需要一个单独的getLength()方法?即使您需要知道DNA序列的长度,您也已经将其存储在String对象中,因此可以使用String.length()方法

b) 您尚未将字符串对象dna声明为全局变量,将无法在TAcount()内访问它

c) 需要彻底修改TAcount()中的for循环。您还试图使用chars!进行递归调用,但尚未定义GTcount()


d) 既然您已经在验证方法中进行了迭代,为什么不将T和A的计数器单独存储在那里呢?这将有助于避免再次进行迭代。

您需要具体说明需要帮助的内容。您是否收到错误(列出确切的错误以及错误发生的位置),输出是否不是您所期望的(给出示例输入和预期输出,并说出您实际得到的结果)。您到底坚持什么?第一种方法Validate工作正常。我坚持使用getlength()来获取我的DNA和TAcount()的长度方法在my DNaun中获取计数和百分比T和A与您的问题相关,Java中的良好实践是将所有类名大写,您应该进行格式化。良好的格式化实践有助于我们更好地理解您所写的内容,也有助于您理解哪里不合适(大多数情况下)。