Читайте имена / номера телефонов из текстового файла и сохраняйте их в массив в Java - PullRequest
0 голосов
/ 07 декабря 2018

Проблема требует, чтобы я завершил код, прочитав первые четыре имени текстового файла и сохранив его в массиве.

Вот код для заполнения.

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;
}

}

Используемый текстовый файл:

Olivia

555-1111

Тим

555-2222

Тереза ​​

555-3333

Лес

555-4444

Фрэнк

555-5555

Симон

555-6666

Теперь, как я должен использовать объектный файлчтобы сохранить текст в массиве, я не понимаю, как должен выглядеть код?

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Вы можете использовать эту логику:

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. Здесь мы храним имя и номер телефона встроковые переменные name и phoneNum.
  2. Теперь, используя эти переменные, мы создаем объект объекта Person с помощью параметризованного конструктора.
  3. Далее мы назначаем этот объектсоответствующий индекс массива.

Также ваш сканер должен быть определен, как показано ниже, для чтения файла через ваш объект сканера infile

Scanner infile = new Scanner(file);
0 голосов
/ 07 декабря 2018

Добро пожаловать в переполнение стека @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;
}

Это должноделай, что просишь.

...