java - 将文本文件扫描成 3 个字符的子字符串
问题描述
我的任务要求我们从 covid 19 密码子序列的文本文件中读取。我已将第一行作为字符串读取。我能够将这一行转换为 3 个字符的子字符串。但是,我现在的问题是对文件的其余部分执行此操作。当我添加一个 hasNext 方法时,它似乎与我的测试线不同。
{
//Open the file
File file = new File("D://Downloads/covid19sequence.txt");
Scanner scan = new Scanner(file); String testLine = ""; String contents = ""; String codon2 = "";
double aTotal, lTotal, lPercentage;
ArrayList<String> codonList = new ArrayList<String>();
//Read a line in from the file and assign codons via substring
testLine = scan.nextLine();
for (int i = 0; i < testLine.length(); i += 3)
{
String codon = testLine.substring(i, i + 3);
codonList.add(codon);
}
while(scan.hasNext())
System.out.println(codonList);
}
供参考,这里是测试线的输出:
[AGA、TCT、GTT、CTC、TAA、ACG、AAC、TTT、AAA、ATC、TGT、GTG、GCT、GTC、ACT、CGG、CTG、CAT、GCT、TAG]
解决方案
使用 while(scan.hasNextLine()) 来浏览文本文件,你可以这样做:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.ArrayList;
public class Codons {
public static void main(String[] args) throws FileNotFoundException {
File file = new File("D://Downloads/covid19sequence.txt");
Scanner scan = new Scanner(file); String testLine = ""; String contents = ""; String codon2 = "";
double aTotal, lTotal, lPercentage;
ArrayList<String> codonList = new ArrayList<String>();
//Read a line in from the file and assign codons via substring
while(scan.hasNextLine()) {
testLine = scan.nextLine();
for (int i = 0; i < testLine.length(); i += 3)
{
String codon = testLine.substring(i, i + 3);
codonList.add(codon);
}
}
scan.close();
System.out.println(codonList);
}
}
推荐阅读
- calendar - 我可以使用 Graph API 将群组事件“添加到我的日历”吗?
- vb.net - Ser no Incremental problem in VB Visual Studio 2019,
- image - 如何在 Flutter 中从 Image 中获取像素颜色?
- python - Matplotlib:如何在带有颜色的插图顶部绘制主轴(不要使插图透明)
- ios - 日历日期本地通知知道何时收到
- kotlin - 如何检查字符串是否可以由指定的字符列表组成?
- python - 为 Python 的类型添加属性
- tomcat - Open shift - JWS - Tomcat 8 将基本 url 重定向到应用程序战争
- oracle - oracle解锁HR账号
- excel - 如何获取列的偏移地址