gpt4 book ai didi

java - 线扫描循环

转载 作者:行者123 更新时间:2023-12-01 17:53:36 25 4
gpt4 key购买 nike

我正在尝试为以 dna.txt 开头的文件 ( "ATG" ) 中的每一行打印出“YES”并以 "TAA" 结尾, "TAG" ,或"TGA" ,如果情况并非如此,则为“否”。它应该在文件中的行完成后停止,但我在代码中创建了某种循环,其中没有任何内容打印到输出文件( hi.txt ),但“NO”......无休止。我知道它也应该有一些“YES”,但我的问题显然比不正确读取文件的标记更大。

我的代码:

public static void Results(Scanner console) throws
FileNotFoundException {
System.out.print("Input file name? ");
Scanner input = new Scanner(new File("dna.txt"));
System.out.print("Output file name: ");
File outputFile = new File("hi.txt");
System.out.println();

PrintStream outputRead = new PrintStream(outputFile);
String isProtein = "NO";
while (input.hasNextLine()) {
String line = input.nextLine().toUpperCase();
Scanner lineScan = new Scanner(line);
while (lineScan.hasNext()) {
if (line.startsWith("ATG")) {
if (line.endsWith("TAA") || line.endsWith("TAG") ||
line.endsWith("TGA")) {
isProtein = "YES";
}
}
}
outputRead.println(isProtein);
}
System.out.println(isProtein);
}

文本文件(尽管它应该适用于任何文本文件,但事实并非如此):

protein?
ATGCCACTATGGTAG
protein?
ATgCCAACATGgATGCCcGATAtGGATTgA
protein?
CCATt-AATgATCa-CAGTt
protein?
ATgAG-ATC-CgtgatGTGgg-aT-CCTa-CT-CATTaa
protein?
AtgC-CaacaTGGATGCCCTAAG-ATAtgGATTagtgA
protein?
atgataattagttttaatatcaga-ctgtaa

你知道这个循环是在哪里形成的吗?如果是这样,请给我一些提示,告诉我应该如何解决这个问题。

谢谢!

最佳答案

只修改了几行,

更改

1.) 评论Scanner lineScan = new Scanner(line);

2.) 需要在循环中重置 isProtein 的值,以便进行下一次迭代。

o/p 打印在文本文件 hi.txt 中。顺便说一句,我使用文本文件进行读/写操作,因此注释掉了扫描仪部分。

代码

public static void Results() throws FileNotFoundException {
//System.out.print("Input file name? ");
Scanner input = new Scanner(new File("dna.txt"));
//System.out.print("Output file name: ");
File outputFile = new File("hi.txt");
//System.out.println();

PrintStream outputRead = new PrintStream(outputFile);
String isProtein = "NO";
while (input.hasNextLine()) {
String line = input.nextLine().toUpperCase();
//Scanner lineScan = new Scanner(line);
//while (lineScan.hasNext()) {
if (line.startsWith("ATG")) {
if (line.endsWith("TAA") || line.endsWith("TAG") || line.endsWith("TGA")) {
isProtein = "YES";
}
}else{
isProtein = "NO";
}
//}
outputRead.println(isProtein);
isProtein = "NO";
}
//System.out.println(isProtein);
}

输出

NO
YES
NO
YES
NO
NO
NO
YES
NO
YES
NO
YES

关于java - 线扫描循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47386823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com