0

私は学生プログラマーなので、9月から勉強しているだけです。今週、datingdata.txtというテキストファイルからデータを読み込み、各人の情報を配列の位置に格納する情報のクラスを作成するという割り当てがありました。データは「GeorgeRobsonM38 11000」の形式で、名前は最大20文字でした。次に、異性であり、年齢が互いに5年以内で、少なくとも3つの共通の関心を持っている試合について各人を比較する必要がありました(1はその活動に興味があることを意味し、そうでない場合は0を意味します)。最後にネストされたforループまで機能し、シンボルが見つからないというエラーが発生し続けるため、角かっこが欠落しているように感じます。何か助けはありますか?

    import java.io.*;
    import static java.lang.Math.*;
    class PersonInfo
   {
    String name;
    char sex;
    int age;
    String interest;

    public void setname (String anyName)
       { name = anyName; }

    public void setsex (char anysex)
       { sex = anysex; }

    public void setage (int anyage)
       { age = anyage; }

    public void setinterest (String anyinterest)
       { interest = anyinterest; }

    public String getName ()
       { return name; }

    public char getsex ()
       { return sex; }

    public int getage ()
    {return age;  }

    public String getinterest ()
    {return interest;    }

    void print ()
       {
        System.out.println(name + " " + sex + " " + age + " " + interest);
       }

    PersonInfo (String name, char sex, int age, String interest)
       {
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.interest = interest;
       }
    }

    class Practical6
      {
    public static void main(String[] args) throws IOException
       {
        //read in file
        BufferedReader fileInput;
        fileInput = new BufferedReader(new FileReader("datingdata.txt"));

        //create an array for storing each persons information
        PersonInfo[] People = new PersonInfo[20];

        //fields to use in creating PersonInfo
        String name;
        char sex;
        int age;
        String interest;

        int i = 0;
        int count = 0;

        //read in each line and store in an array
        while (fileInput.ready ())                                  
           {                                                    
            String information;
            information = fileInput.readLine ();                                
           // System.out.println (information);
            name = information.substring(0,20);
            sex = information.charAt(20);
            age = Integer.parseInt(information.substring(22,24));   
            interest = information.substring(25,30);
            People[i]= new PersonInfo (name, sex, age, interest);
            i++;                                
           } 
        fileInput.close(); 

        //pring out the array

        for (int j = 0; j < People.length; j++)
            People[j].print();


        //go through each element of array and compare to another record for a match
        for (int k = 0; k < People.length; k++)
            for (int l = 0; l <People.length; l++)
            if (People[k].getsex() != People[l].getsex())
                if(math.abs(People[k].getage()-People[l].getage()) <=5)
                {for(int m = 0; m < 5; m++)
                    if((People[k].getinterest.charAt(m)=='1')  && (People[l].getinterest.charAt(m)=='1'));
                            count++;
                            if(count==3)
                                System.out.println(People[k].getname + " is a match with " + People[l].getname);
                }

            }
            }
4

1 に答える 1

2
for (int k = 0; k < People.length; k++)
    for (int l = 0; l <People.length; l++)
    if (People[k].getsex() != People[l].getsex())
        if(Math.abs(People[k].getage()-People[l].getage()) <=5)
        {for(int m = 0; m < 5; m++)
            if((People[k].getinterest().charAt(m)=='1')  && (People[l].getinterest().charAt(m)=='1'));
                    count++;
                    if(count==3)
                        System.out.println(People[k].getName() + " is a match with " + People[l].getName());
        }

いくつかの構文エラー:1。math.abs()の代わりにMath.abs()2. getinterestの代わりにgetinterest()3. getnameの代わりにgetName()

于 2012-11-20T04:24:31.880 に答える