[英]Read names/phone numbers from text file and store them into an array in java
该问题希望我通过读取文本文件的前四个名称并将其存储到数组中来完成代码。
这是要填写的代码。
import java.io.*;
import java.util.Scanner;
public class PersonDemo
{
public static void main(String[] args)
{
File file = new File("phonedata.txt");
Scanner infile = new Scanner(System.in);
Person[] pArray = new Person[4];
for(int i=0;i<4;i++)
{
String n = infile.nextLine();
String p = infile.nextLine();
我应该在这里插入什么?
}
infile.close();
}
}
使用的目标文件是:
public class Person
{
private String name = "";
private String phone ="";
public Person(String n, String p)
{
name = n;
phone = p;
}
public Person()
{
name ="";
phone="";
}
public void setName(String n)
{
name =n;
}
public void setPhone(String p)
{
phone = p;
}
public String getName()
{
return name;
}
public String getPhone()
{
return phone;
}
public String toString()
{
return "Name: "+name + " Phone: " + phone;
}
}
使用的文本文件是:
奥利维亚
555-1111
蒂姆
555-2222
有个
555-3333
森林
555-4444
坦率
555-5555
西蒙
555-6666
现在,我应该如何使用目标文件将文本存储到数组中,我对代码的外观感到困惑?
欢迎使用堆栈溢出@tristan
在String p = infile.nextline();
之后String p = infile.nextline();
,做pArray[i] = n + " " + p
这应该使您的循环看起来像:
for(int i=0;i<4;i++)
{
String n = infile.nextLine();
String p = infile.nextLine();
Person person = new Person(n, p);
pArray[i] = person;
}
这应该可以满足您的要求。
您可以使用以下逻辑:
for (int i = 0; i < 4; i++) {
String name = infile.nextLine();
infile.nextLine(); // skip a line because there is a blank line in between
String phoneNum = infile.nextLine();
infile.nextLine(); // here again skipping a blank line
Person per = new Person(name, phoneNum);
pArray[i] = per;
}
说明:
name
和phoneNum
。 此外,还应按以下方式定义扫描仪,以通过扫描仪对象infile
读取文件
Scanner infile = new Scanner(file);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.