Ich versuche, in einer Datei für jede Zeile „JA“ zum Ausdrucken (dna.txt
), die mit "ATG"
beginnt und endet mit "TAA"
, "TAG"
oder "TGA"
, und „NEIN“, wenn dies nicht der Fall ist . Es sollte aufhören, nachdem die Zeilen in der Datei fertig sind, aber ich habe eine Art Schleife in meinem Code erstellt, wo nichts in die Ausgabedatei gedruckt wird (hi.txt
), aber "NEIN" ... endlos. Ich weiß, dass es auch einige "JA" -Se haben sollte, aber mein Problem ist deutlich größer als nur nicht die Tokens der Datei richtig zu lesen.Line Scanner Schleife
Mein Code:
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);
}
Textdatei (obwohl es mit einer beliebigen Textdatei arbeiten sollte, und es ist nicht):
protein?
ATGCCACTATGGTAG
protein?
ATgCCAACATGgATGCCcGATAtGGATTgA
protein?
CCATt-AATgATCa-CAGTt
protein?
ATgAG-ATC-CgtgatGTGgg-aT-CCTa-CT-CATTaa
protein?
AtgC-CaacaTGGATGCCCTAAG-ATAtgGATTagtgA
protein?
atgataattagttttaatatcaga-ctgtaa
Haben Sie eine Ahnung, wo diese Schleife bilden ? Wenn ja, bitte gib mir nur Hinweise, wie ich das beheben soll.
Danke!
Was ist der Zweck der 'lineScan'? – shmosel
Ich soll das verwenden, um die einzelnen Tokens der Textdatei zu lesen, denke ich. –
Nun ... bist du? – shmosel