繁体   English   中英

StringTokenizer多行

[英]StringTokenizer multiple lines

我有两个文件,分别称为“ ride.in”和“ ride.out”。 “ ride.in”文件包含两行,一行包含字符串“ COMBO”,另一行包含字符串“ ADEFGA”。 就像我说的那样,每个字符串在单独的行上,因此“ COMBO”在第一行,而“ ADEFGA”在“ ride.in”文件的第二行。 这是我的代码:

 public static void main(String[] args) throws IOException {
File in = new File("ride.in");
File out = new File("ride.out");
String line;
in.createNewFile();
out.createNewFile();
BufferedReader br = new BufferedReader(new FileReader(in));
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(out)));
while ((line = br.readLine()) != null) {
    StringTokenizer st = new StringTokenizer(line);
    String sam =st.nextToken();
}
pw.close();
}
    }

我想将COMBO分配为一个令牌,将ADEFGA分配为另一个令牌,但是在此代码中,COMBO和ADEFGA都分配给了sam字符串。 如何将COMBO分配给一个字符串,如何将ADEFGA分配给另一字符串?

您可以将文件中的每一行读入List<String>

List<String> words = Files.readAllLines(new File("ride.in").toPath(), Charset.defaultCharset() );

另外,您可以使用Fileutils

List<String> words = FileUtils.readLines(new File("ride.in"), "utf-8");

words现在应包含:

['COMBO','ADEFGA']

注意:相应地调整ride.in的文件路径

您无法创建数量可变的变量。

创建一个字符串数组列表。

更改

while ((line = br.readLine()) != null) {
    StringTokenizer st = new StringTokenizer(line);
    String sam =st.nextToken();
}

List<String> myList = new ArrayList<String>();
while ((line = br.readLine()) != null) {
    StringTokenizer st = new StringTokenizer(line);
    myList.add(st.nextToken());
}

现在,myList.get(0)将具有“ COMBO”,而myList.get(1)将具有“ ADEFGA”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM