我是 Java 新手,我正在练习字符串,但是当我运行它时,它会抛出 NullPointeException
我已经定义了一个构造函数,它的值为 String s1,stopCodon,startCodon。
它需要 s1 的值,但不是 stopCodon,startCodon
当我将值放入实例变量时它工作正常请稍微解释一下,以便它帮助我......
/* package codechef; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Codechef
{
String s1;
String startCodon;
String stopCodon;
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
//String s1;
//String startCodon;
//String stopCodon;
Codechef test1 = new Codechef();
test1.testSimpleGene();
}
public void testSimpleGene(){
System.out.println("Gene Strand is = " + s1);
System.out.println("Gene1 is = " + findSimpleGene(s1));
System.out.println("Gene2 is = " + findSimpleGene(s1,startCodon,stopCodon));
}
private String findSimpleGene(String dna,String x,String y){
String dnaResult = "";
int startIndex = dna.toUpperCase().indexOf(x);
if (startIndex == -1){
return "";
}
int stopIndex = dna.toUpperCase().indexOf(y,startIndex+3);
if (stopIndex == -1){
return "";
}
//System.out.println(startIndex +" Part2 "+ (stopIndex));
if((stopIndex - startIndex)%3 == 0){
dnaResult = dna.substring(startIndex,stopIndex+3);
}
return dnaResult;
}
public String findSimpleGene(String dna){
String dnaResult = "";
int startIndex = dna.indexOf(startCodon);
if (startIndex == -1){
return "";
}
int stopIndex = dna.indexOf(stopCodon,startIndex+3);
if (stopIndex == -1){
return "";
}
//System.out.println(startIndex +" "+ (stopIndex));
if((stopIndex - startIndex)%3 == 0){
dnaResult = dna.substring(startIndex,stopIndex+3);
}
return dnaResult;
}
Codechef(){
String s1 = "taaatg";
String startCodon = "TAA";
String stopCodon = "ATG";
}
}
错误
at Codechef.findSimpleGene(Main.java:45)
at Codechef.testSimpleGene(Main.java:24)
at Codechef.main(Main.java:20)```
将构造函数更改为如下所示。
public Codechef(){
s1 = "taaatg";
startCodon = "TAA";
stopCodon = "ATG";
}
通过String
在每一行的开头添加单词,您实际上是在构造函数中声明了局部变量。您不希望这样,因为您想使用对象中的字段,而不是使用其他变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句