2017-04-04 44 views
-2

我得到的錯誤是字符串名稱:GirlNames 和StringNames:BoyNames。這些代碼中有4個錯誤。建議或一些幫助非常感謝,如果它可能修復。在我的字符串名稱上得到四個錯誤java

import java.util.*; 
import java.io.*; 

public class NameSearch { 

    private ArrayList GirlNames; 

    private ArrayList BoyNames; 

    private String GirlName = null; 

    private String BoyName = null; 

    public NameSearch() { 
     GirlNames = loadNames("GirlNames.txt"); 
     BoyNames = loadNames("1"); 
     readNames(); 
    } 

    private ArrayList loadNames(String fileName) { 
     ArrayList namesList; 

     namesList = new ArrayList(); 

     try { 
      File file = new File(fileName); 

      Scanner inFile = new Scanner(file); 

      while(inFile.hasNext()) { 
       String name = inFile.nextLine(); 

       namesList.add(name); 
      } 

      inFile.close(); 
     } catch(Exception ex) { 
      System.out.println("Error :" + ex.getMessage()); 
     } 

     return namesList;   
    } 

    private void readNames() { 
     Scanner keyboard = new Scanner(System.in); 

     try { 
      System.out.println("do you want to search " + "Name(1-Girl, 2-Boy,3-Both) :"); 

      int mode = keyboard.nextInt(); 

      if (mode < 1 && mode > 3) { 
       System.out.println("Invalid Choice!"); 
       System.exit(0); 
      } 

      if (mode == 1) { 
       System.out.print("Enter Girl Name :"); 

       GirlName = keyboard.next(); 

       for (String name : GirlNames) { 
        if (name.equalsIgnoreCase(GirlName)) { 
         System.out.println("Found "+ "Girl Name "+ name); 
        } 
       } 
      } else if (mode == 2) { 
       System.out.print("Enter Boy Name :"); 

       BoyName = keyboard.next(); 

       for (String name : BoyNames) { 
        if (name.equalsIgnoreCase(BoyName)) { 
         System.out.println("Found Boy"+ "Name "+ name); 
        } 
       } 
      } else { 
       System.out.print("Enter Girl Name :"); 

       GirlName = keyboard.next(); 

       System.out.print("Enter Boy Name :"); 

       BoyName = keyboard.next(); 

       for (String name : GirlNames) { 
        if (name.equalsIgnoreCase(GirlName)) { 
         System.out.println("Found Girl "+ "Names "+ name); 
        } 
       } 

       for (String name : BoyNames) { 
        if (name.equalsIgnoreCase(BoyName)) { 
         System.out.println("Found Boy"+ "Name "+ name); 
        } 
       } 
      } 
     } catch (Exception ex) { 
      System.out.println("Error :"+ ex.getMessage()); 
     } 
    } 

    public static void main(String[] args) { 
     NameSearch ns = new NameSearch(); 
    } 
} 
+3

什麼錯誤? –

+0

你沒有使用通用的ArrayList,所以你不能爲'(String Name:GirlNames){'嘗試'私人ArrayList GirlNames;' –

+2

如果你知道有四個錯誤,那麼顯然你看到了錯誤信息,你可以算。爲什麼他們中沒有人在你的問題中?它們在屏幕的正前方,這些信息會幫助我們幫助你。絕對沒有理由不在你的文章中包含這些細節。這些消息中的信息是一個非常相關的細節,應該在這裏。你要求*免費幫助*解決**你的問題**。通過向我們提供您已經掌握在您面前的細節,儘可能簡化我們的工作,這對您的利益最大。 –

回答

0

您必須將泛型類型應用於ArrayLists;我很想解釋爲什麼,但比我更聰明的人已經做得更好了!

https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaGeneric.html

這裏是如何解決你的代碼:

private ArrayList<String> GirlNames; 

private ArrayList<String> BoyNames; 

private ArrayList<String> loadNames(String fileName) { 
    ArrayList<String> namesList = new ArrayList<String>(); 

    ... 
} 
+0

謝謝你的工作,即使代碼沒有輸出我想生病我自己修復。 – akay

相關問題