data.txt文件包含:
Manyana, Michael, 30
Henderson, Marge, 22
Striker, Nancy, 32
Johnson, Fred, 12
Ryan, Renee, 22
我想知道如何仅显示名字并将其存储到新数组中。如何仅选择名字?例如,
Manyana
Henderson
Striker
Johnson
Ryan
提前致谢。
import java.io.*;
import java.util.Scanner;
public class multipleArray {
private static Scanner file;
public static String[] array = new String[500];
public static void main(String[] args) throws FileNotFoundException {
File myfile = new File("data.txt");
file = new Scanner (myfile);
Scanner s = file.useDelimiter(",");
int i = 0;
while (s.hasNext()) {
i++;
array[i] = s.next();
}
for(int j=0; j<array.length; j++) {
if(array[j] == null)
;
else
System.out.print(array[j]);
}
}
答案 0 :(得分:1)
您正在i
循环中递增while
,之后您不会重置它,因此在for
循环中您会看到i
的最终值。< / p>
你应该这样做:
for(int j=0; j<array.length; j++)
System.out.print(array[j]);
答案 1 :(得分:0)
首先,只使用“,”作为分隔符,您永远不会选择名字。这需要进一步分裂,这是可以避免的。
Scanner s = file.useDelimiter(","); //array[2]=="30\nHenderson" !
应改为:
Scanner s = file.useDelimiter(",|\\n");
然后你可以这样简单地打印名字:
for(int j=0; j<i; j+=3) {
System.out.println(array[j]);
}
同样通过执行以下操作,您可以将数组的第一个字符串留空......
while (s.hasNext()) {
i++;
array[i] = s.next();
}
我建议:
while (s.hasNext()) {
array[i] = s.next();
i++;
}