Java程序可以同时使用三个方法并每次调用每个方法
我试图创建一个Java程序来提示用户输入DNA序列并 使用validate()方法。然后,在DNA被验证后,我想得到我的验证DNA的长度 使用另一个getLength()方法进行排序。然后,我想使用count()方法来计算我的 验证DNA序列,计算每个序列的百分比。这就是我目前得到的。我没有得到结果。我可以得到DNA,但长度和计数不能给出结果。有人能帮忙吗Java程序可以同时使用三个方法并每次调用每个方法,java,methods,Java,Methods,我试图创建一个Java程序来提示用户输入DNA序列并 使用validate()方法。然后,在DNA被验证后,我想得到我的验证DNA的长度 使用另一个getLength()方法进行排序。然后,我想使用count()方法来计算我的 验证DNA序列,计算每个序列的百分比。这就是我目前得到的。我没有得到结果。我可以得到DNA,但长度和计数不能给出结果。有人能帮忙吗 import java.util.Scanner; public class dnaseq { // using first
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中的良好实践是将所有类名大写,您应该进行格式化。良好的格式化实践有助于我们更好地理解您所写的内容,也有助于您理解哪里不合适(大多数情况下)。