簡體   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