繁体   English   中英

从文本文件中读取名称/电话号码,并将其存储到Java中的数组中

[英]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;
} 

说明:

  1. 在这里,我们将名称电话号码存储在字符串变量namephoneNum
  2. 现在,使用这些变量,我们使用参数化构造函数创建Person 对象
  3. 接下来,我们将此对象分配给数组的相应索引。

此外,还应按以下方式定义扫描仪,以通过扫描仪对象infile读取文件

Scanner infile = new Scanner(file);

暂无
暂无

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

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