该问题希望我通过读取文本文件的前四个名称并将其存储到数组中来完成代码。
这是要填写的代码。
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
Theresa
555-3333
森林
555-4444
坦率
555-5555
西蒙(Simon)
555-6666
现在我应该如何使用目标文件将文本存储到数组中,我对代码的外观感到困惑?
答案 0 :(得分:0)
欢迎堆栈溢出@tristan
在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;
}
这应该可以满足您的要求。
答案 1 :(得分:0)
您可以使用此逻辑:
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);