在Java中,如果你得到一个每行有两个元素的文本文件,我们如何分别抓取这些元素?
例如,假设我们有一个包含以下内容的5 line text file
:
a morgan
b stewart
c david
d alfonso
e brittany
假设我们想将单个字符存储在一个变量中,将名称存储在另一个变量中。我们如何做到这一点是Java?
我已经实现了一些类似这样的代码:
while(scanner.hasNextLine()){
for(int i = 0; i < 2; i++){
char character = scanner.hasNextChar(); // doesn't exist but idk how
String name = scanner.hasNext();
}
}
基本上,我有一个 while 循环逐行读取每个 2 个元素,并且在每行中都有一个 for 循环将每个元素存储在变量中。我只是对如何在 java 中提取每个单独的元素感到困惑。
考虑到您使用scanner.hasNextLine()
作为循环条件。您可以拆分String
然后根据需要收集结果。
while (scanner.hasNextLine()){
String[] result = scanner.nextLine().split(" ");
char character = result[0].charAt(0);
String name = result[1];
}
可以使用 String.split(String regex)
方法拆分带有空格字符的行。
它将生成一个包含两个字符串的数组。
如果调用while(scanner.hasNextLine()){
来获取输入,则应调用String name = scanner.nextLine();
来检索输入。
hasNext()
方法返回一个布尔值,以指示此扫描程序的输入中是否有另一个标记。
做while(scanner.hasNextLine()){
和scanner.hasNext()
是多余的。