【发布时间】:2013-07-26 21:59:08
【问题描述】:
您好,我在暑假上编程课,需要创建一个从文件读取输入的程序。输入文件包括 DNA 序列 ATCGAGG 等,文件的第一行说明需要比较多少对序列。其余的是成对的序列。在课堂上,我们使用 Scanner 方法从文件中输入行,(我阅读了有关 bufferedReader 的内容,但我们没有在课堂上介绍它,所以不熟悉它)但是我不知道如何编写代码来比较两行Scanner 方法同时进行。
我的尝试:
public static void main (String [] args) throws IOException
{
File inFile = new File ("dna.txt");
Scanner sc = new Scanner (inFile);
while (sc.hasNextLine())
{
int pairs = sc.nextLine();
String DNA1 = sc.nextLine();
String DNA2 = sc.nextLine();
comparison(DNA1,DNA2);
}
sc.close();
}
如果它们有共同的任何共同字符,比较方法将采用一对序列并输出。另外,我将如何继续输入下一对,任何见解都会有所帮助.. 只是被难住了,谷歌让我更加困惑。谢谢!
编辑:
这是示例输入
7
atgcatgcatgc
AtgcgAtgc
GGcaAtt
ggcaatt
GcT
gatt
aaaaaGTCAcccctccccc
GTCAaaaaccccgccccc
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gctagtacACCT
gctattacGcct
【问题讨论】:
-
int pairs = sc.nextLine();这应该是int pairs = Integer.parseInt(sc.nextLine());无论如何你能告诉我们dna.txt文件的结构以供参考。 -
但据我了解,您必须阅读
while循环之外的pairs。 -
我认为while循环只是意味着只要有另一行它就会打印它,第一行决定了对所以我认为它应该进入循环..它还会读吗循环外txt的第一行?
-
是的,如果有可用线路的话。但是一旦通过
hasNextLine()行,方法检查下一行是否可用,如果存在则返回true,保持while循环运行,否则返回false。See Scanner#hasNextLine() -
说到hasNextLine(),在while循环中,有没有办法将每一行存储为数组的索引,然后使用我的比较方法调用它们进行比较?跨度>
标签: java