2017-04-04 90 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

相关问题