3

誰か助けてください。何度も検索しましたが、どこにも解決策が見つかりません。私は Java の初心者で、現在大学を休学中にいくつかのコードを練習しています。

電話帳プログラムを作ろうとしています。現在、新しい連絡先を追加しようとしています。以下は私が持っているコードですが、情報を配列に保存する方法がわかりません。誰かが私にいくつかのポインタを教えてください。

    import java.util.Scanner;

    public class addContact {
    public static void main(String [] args){

    //declare arrays
        String [] contactName = new String [12];
        String [] contactPhone = new String [12];
        String [] contactAdd1 = new String [12];
        String [] contactAdd2 = new String [12];

    //inputs
    String name = "";
    String phone = "";
    String add1 = "";
    String add2 = "";

    //method of taken input
    Scanner input = new Scanner(System.in);

    //while name field is empty display prompt etc.
    while (name.equals(""))
    {
    System.out.println("Enter contacts name: ");
    name = input.nextLine();
    name += contactName[];
    }


    while (add1.equals(""))
    {
    System.out.println("Enter contacts addressline1:");
    add1 = input.nextLine();
    add1 += contactAdd1[];
    }

    while (add2.equals(""))
    {
    System.out.println("Enter contacts addressline2:");
    add2 = input.nextLine();
    add2 += contactAdd2[];
    }

    while (phone.equals(""))
    {
    System.out.println("Enter contact phone number: ");
    phone = input.nextLine();
    phone += contactPhone[];
    }

    }   
}
4

6 に答える 6

3

よりクリーンなアプローチは、、 などPersonを含むオブジェクトを作成することです。次に、配列ではなく を使用して新しいオブジェクトを追加します。各 `Person のすべてのフィールドを受け入れるループを作成します。contactNamecontactPhoneArrayList

while (!done) {
   Person person = new Person();
   String name = input.nextLine();
   person.setContactName(name);
   ...

   myPersonList.add(person);
}

リストを使用すると、配列の境界チェックが不要になります。

于 2013-01-11T14:20:53.090 に答える
2

このコードの問題の 1 つがここにあります。

name += contactName[];

この命令は配列に何も挿入しません。代わりに、変数名の現在の値を contactName 配列の文字列表現と連結します。

代わりにこれを使用します:

contactName[index] = name;

この命令は、変数名を contactName 配列の index に格納しますindex

2 つ目の問題は、変数がないことですindex

できることは、すべての配列を埋めるために 12 回の反復を行うループです。(そしてindexあなたの反復変数になります)

于 2013-01-11T14:25:37.257 に答える
1
//go through this code I have made several changes in it//

import java.util.Scanner;

public class addContact {
public static void main(String [] args){

//declare arrays
String [] contactName = new String [12];
String [] contactPhone = new String [12];
String [] contactAdd1 = new String [12];
String [] contactAdd2 = new String [12];
int i=0;
String name = "0";
String phone = "0";
String add1 = "0";
String add2 = "0";
//method of taken input
Scanner input = new Scanner(System.in);

//while name field is empty display prompt etc.
while (i<11)
{
    i++;
System.out.println("Enter contacts name: "+ i);
name = input.nextLine();
name += contactName[i];
}


while (i<12)
{
    i++;
System.out.println("Enter contacts addressline1:");
add1 = input.nextLine();
add1 += contactAdd1[i];
}

while (i<12)
{
    i++;
System.out.println("Enter contacts addressline2:");
add2 = input.nextLine();
add2 += contactAdd2[i];
}

while (i<12)
{
    i++;
System.out.println("Enter contact phone number: ");
phone = input.nextLine();
phone += contactPhone[i];
}

}   
}
于 2016-08-11T13:06:55.920 に答える