1

私のプログラムは、ユーザーが停止するまで、ユーザーに名、姓、電話番号を尋ねるはずです。次に、表示するときに名を要求し、テキストファイルを検索して、同じ名のすべての情報を検索し、一致する姓と電話番号を表示します。

import java.util.*;
import java.io.*;
import java.util.Scanner;
public class WritePhoneList
{
public static void main(String[] args)throws IOException
{


  BufferedWriter output = new BufferedWriter(new FileWriter(new File(
                                        "PhoneFile.txt"), true));

String name, lname, age;
int pos,choice;

try
{

do
{
Scanner input = new Scanner(System.in);
System.out.print("Enter First name, last name, and phone number ");
name = input.nextLine();


output.write(name);
output.newLine();

System.out.print("Would you like to add another? yes(1)/no(2)");
choice = input.nextInt();
}while(choice == 1);
output.close();
}
catch(Exception e)
{
System.out.println("Message: " + e);
}
}
}

これが表示コードです。名前を検索すると一致するものが見つかりますが、同じ名前の姓と電話番号が3回表示されるので、名と一致する可能性のあるものをすべて表示したいと思います。

import java.util.*;
import java.io.*;
import java.util.Scanner;
public class DisplaySelectedNumbers
{
public static void main(String[] args)throws IOException
{

String name;
String strLine;
try
{
FileInputStream fstream = new FileInputStream("PhoneFile.txt");
        // Get the object of DataInputStream
        DataInputStream in = new DataInputStream(fstream);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
          Scanner input = new Scanner(System.in);
          System.out.print("Enter a first name");
          name = input.nextLine();

        strLine= br.readLine();
        String[] line = strLine.split(" ");
        String part1 = line[0]; 
        String part2 = line[1];
        String part3 = line[2];

        //Read File Line By Line
        while ((strLine= br.readLine()) != null)    
    {

        if(name.equals(part1)) 
        {

        // Print the content on the console
System.out.print("\n" + part2 + " " + part3);
}   
}
}catch (Exception e)
{//Catch exception if any
            System.out.println("Error: " + e.getMessage());
}

}
}
4

1 に答える 1

0

行を分割し、パーツをwhileループ内に設定する必要があります。

    FileInputStream fstream = new FileInputStream("PhoneFile.txt");
    // Get the object of DataInputStream
    DataInputStream in = new DataInputStream(fstream);
    BufferedReader br = new BufferedReader(new InputStreamReader(in));
    Scanner input = new Scanner(System.in);
    System.out.print("Enter a first name");
    name = input.nextLine();

    String[] line;
    String part1, part2, part3;

    //Read File Line By Line
    while ((strLine= br.readLine()) != null)    
    {
        line = strLine.split(" ");
        part1 = line[0]; 
        part2 = line[1];
        part3 = line[2];

        if(name.equals(part1)) 
        {
            System.out.print("\n" + part2 + " " + part3);
        }


    }
于 2012-11-21T16:48:12.963 に答える