0

csv ファイルを読み取り、姓、名、住所、都市、州、郵便番号、電話番号などの連絡先を出力する addressBook プログラムに取り組んでいます。最初にコードの一部が与えられ、コードのこの部分が機能するようにしました。

これまでのところ、ファイルを読み取り、コンテンツを newFile に書き込みました。ただし、コードの一部には、それが何をするのか完全にはわかりません。私はプログラミングに慣れていないので、単純に機能するコードをまとめたくはありません。何が起こっているのかを理解したいのです。私が混乱している部分は、main ステートメントの直後です (main の後の最初の 9 行は、String [] lname、fname、street ..... で始まります)。

どうぞ、どんな助けでも大歓迎です。

public class Main 
{
public static void main (String [] args) throws FileNotFoundException
{
    String [] lName, fName, street, city, state, zip, phone;

    lName = new String[20];
    fName = new String[20];
    street = new String[50];
    city = new String[20];
    state = new String[20];
    zip = new String[12];

    System.out.println("ADDRESS BOOK CONTENTS: ");

    Scanner inFile;

    try 
    {
        inFile = new Scanner (new File("src/addresses.csv"));
        String temp;

        while (inFile.hasNextLine())
        {
            temp = inFile.nextLine();
            System.out.println("Contact:    " + temp);              
        }   

        System.out.println(inFile);


    }

        catch (FileNotFoundException e) 
        {
            //catch block
            e.printStackTrace();
        }
    try
    {
    FileInputStream fileIn = new FileInputStream("src/addresses.csv");
    FileOutputStream fileOut = new FileOutputStream("src/newfile.csv");

    int c;
    while ((c = fileIn.read()) != -1)
    {
        fileOut.write(c);
    }

    fileIn.close();
    fileOut.close();
    }

     catch (FileNotFoundException exception1) 
      {
         System.err.println("FileCopy: " + exception1);
      } 
      catch (IOException exception1) 
      {
         System.err.println("FileCopy: " + exception1);
      }

}
}
4

2 に答える 2

1

String[]これは、文字列の配列であるタイプのいくつかの変数を宣言するだけです。

array次の行は、これらの変数に初期容量を持つ新しいを割り当てています。

この構文は、最初に変数を宣言してから代入しますが、次のように 1 つのステートメントで宣言と代入を行うこともできます。

String[] lName = new String[20];

2 つの構文は同等です。

于 2013-03-18T21:45:18.793 に答える
1

コードのこれらの部分は、配列作成ステートメントです。

lName = new String[20];

20 個の要素を持つ文字列の新しい配列を作成し、それを変数に割り当てることを意味しますlName

そして、最初にいくつかの配列の例を挙げてみましょう:

lName[4] = "john";

文字列値「john」を配列の5番目(4番目ではない)の要素に割り当てることを意味します

String name = lName[0];

配列の最初の要素を取得し、それを呼び出された変数に割り当てることを意味しますname

于 2013-03-18T21:45:45.977 に答える