Java 知道它是如何编译的,因为我没有一个可运行的示例;)也许if(check.ClientID.equals(givenID))return check@ScaryWombat我是个老派,我相信我的方法有一个入口和一个出口点,清晰明确,不可能遗漏隐藏在某个复合i

Java 知道它是如何编译的,因为我没有一个可运行的示例;)也许if(check.ClientID.equals(givenID))return check@ScaryWombat我是个老派,我相信我的方法有一个入口和一个出口点,清晰明确,不可能遗漏隐藏在某个复合i,java,Java,知道它是如何编译的,因为我没有一个可运行的示例;)也许if(check.ClientID.equals(givenID))return check@ScaryWombat我是个老派,我相信我的方法有一个入口和一个出口点,清晰明确,不可能遗漏隐藏在某个复合if语句中的返回语句,使用索引代替I(这是如何编译的???)也可能是一种改进。@laune我专注于返回if语句,错过了I…我不知道它是如何编译的,因为我没有一个可运行的示例;)可能if(check.ClientID.equals(givenID)


知道它是如何编译的,因为我没有一个可运行的示例;)也许
if(check.ClientID.equals(givenID))return check
@ScaryWombat我是个老派,我相信我的方法有一个入口和一个出口点,清晰明确,不可能遗漏隐藏在某个复合
if
语句中的
返回语句,使用索引代替I(这是如何编译的???)也可能是一种改进。@laune我专注于返回if语句,错过了
I
…我不知道它是如何编译的,因为我没有一个可运行的示例;)可能
if(check.ClientID.equals(givenID))返回检查
@ScaryWombat我是老派,我相信我的方法有一个入口和一个出口,清晰且定义良好,不可能遗漏隐藏在某个复合
if
语句中的
return
语句
public class ClientsDetailsList {



     public ArrayList <ClientDetails> aListOfClientDetails;



public ClientDetails getClientDetails(String givenID) {
        boolean found = false;
        int index = 0;

        for(;index<aListOfClientDetails.size();index++){
               if((aListOfClientDetails.get(index).ClientID.equals(givenID)))
                  found = true;

        }


        if(found)
        return aListOfClientDetails.get(index);

        else return null;

    }

}
[IC-x00042W Ms LQ Bethea 205, Willis Road Bolton BO5 1DQ 2000000007 2000100037 2006200319,
 IC-x00033D Mr R Bowie 119, Thatcher Way Glasgow GL9 5SX 2006000016 2003100008 2005300001,
 IC-x00013A MS GRV Blackwell 209, Drunk Road Hawick HK8 1MY 2006000009 2004100014 2003200304,
 IC-x00018O Ms NAP Wallis 244, Grubb Lane Durham DU4 4ZX 2000000006 2003100012 2006200305]
IC-x00042W/Ms/LQ/Bethea/205, Willis Road/Bolton/BO5 1DQ/2000000007/2000100037/2006200319#
IC-x00033D/Mr/R/Bowie/119, Thatcher Way/Glasgow/GL9 5SX/2006000016/2003100008/2005300001#
IC-x00013A/MS/GRV/Blackwell/209, Drunk Road/Hawick/HK8 1MY/2006000009/2004100014/2003200304#
IC-x00018O/Ms/NAP/Wallis/244, Grubb Lane/Durham/DU4 4ZX/2000000006/2003100012/2006200305#
IC-x00037N/Miss/DOD/Burke/272, Ambrose Lane/Cambridge/CB2 2XD/2005000003/2001100020#
IC-x00039A/Dr/X/Salter/285, Bannister Road/Sea Palling/SP2 6GW/2000000002/2005100029/2005200306#
IC-x00011I/MR/R/Reece/104, Bannister Lane/Cromer/CR0 6LD/2005000012/2003100001/2001200300#
IC-x00025V/Mr/P/Abbott/163, Drunk Lane/Hunstanton/HU1 1UR/2003000029/2004100017#
IC-x00008L/Dr/P/Runyon/150, Tick Tock Way/Swindon/SW8 4OJ/2004000005/2006100005/2001200316#
IC-x00028F/MR/X/Watt/267, Malton Road/Cambridge/CB4 1PQ/2004100016/2004200312#
IC-x00031X/Mr/S/Lorenz/276, Tick Tock Way/London/LN9 7ID/2005000023/2005100007#
IC-x00020C/Mr/LNV/Mcmillan/44, Drunk Street/London/LN6 1RG/2001000019#
IC-x00015H/Mr/TQZ/Dubose/201, Drunk Road/London/LN4 5RA/2003000026/2006100028/2000200307#

//Creates ClientsDetailsList from source file
public static ClientsDetailsList readFile(File inputFile) throws IOException{


ArrayList <String> clientData = new ArrayList<String>();
      ArrayList <ClientDetails> cdList = new ArrayList<>();
      ArrayList <PolicyList> arrayofPolsLists = new ArrayList<>();

      //Lists of ClientDetails fields
      ArrayList <Name> clientName = new ArrayList<>();
      ArrayList <String> clientID = new ArrayList<String>(); 
      ArrayList <Address> clientAddress = new ArrayList<>();


      // Lists of Name class fields
      ArrayList <String> clientTitle = new ArrayList<String>();
      ArrayList <String> clientInitials = new ArrayList<String>();
      ArrayList <String> clientSurname = new ArrayList<String>();


      //Lists of Address class fields
      ArrayList <String> clientStreet = new ArrayList<String>();
      ArrayList <String> clientCity = new ArrayList<String>();
      ArrayList <String> clientPostCode = new ArrayList<String>();

      ArrayList <ArrayList <Policy>> list = new ArrayList<ArrayList<Policy>>();


      Scanner fileScan = new Scanner(inputFile);
      fileScan.useDelimiter("#");


      int i =0;


      //Reading the file
      while(fileScan.hasNext()){
            clientData.add(fileScan.next());

                Scanner cdScan = new Scanner(clientData.get(i));
                cdScan.useDelimiter("/");

                ArrayList <String> tokens = new ArrayList<String>();
                ArrayList <Policy> clientPolicyNo = new ArrayList<>();

                while(cdScan.hasNext()){
                tokens.add(cdScan.next());
                }

                clientID.add(tokens.get(0));    
                clientTitle.add(tokens.get(1));
                clientInitials.add(tokens.get(2));
                clientSurname.add(tokens.get(3));
                clientStreet.add(tokens.get(4));        
                clientCity.add(tokens.get(5));
                clientPostCode.add(tokens.get(6));

                boolean whileController = true; 

                while(whileController){

                    clientPolicyNo.add(new Policy(tokens.get(7)));

                    switch(tokens.size()){
                    case 9 :  clientPolicyNo.add(new Policy(tokens.get(8)));                

                    break;
                    case 10:  clientPolicyNo.add(new Policy(tokens.get(8)));
                              clientPolicyNo.add(new Policy(tokens.get(9)));
                    break;
                    case 11:  clientPolicyNo.add(new Policy(tokens.get(8)));
                              clientPolicyNo.add(new Policy(tokens.get(9)));
                              clientPolicyNo.add(new Policy(tokens.get(10)));
                    break;
                    } 

                    whileController=false;
                }



                list.add(clientPolicyNo);


                i++;
       }      

      //Adding policy lists
      for(int j =0; j<clientID.size();j++){

          arrayofPolsLists.add(new PolicyList());
          arrayofPolsLists.get(j).aListOfPolicies=list.get(j);

      }



      //Creating Name objects
      for(int j =0;j<clientID.size();j++){
             clientName.add(new Name());

             clientName.get(j).Title = clientTitle.get(j);
             clientName.get(j).Initials = clientInitials.get(j);
             clientName.get(j).Surname = clientSurname.get(j);

         }

      //Creating Address objects
      for(int j =0;j<clientID.size();j++){
          clientAddress.add(new Address());

          clientAddress.get(j).street = clientStreet.get(j);
          clientAddress.get(j).city = clientCity.get(j);
          clientAddress.get(j).postcode = clientPostCode.get(j);

         }


      //Creating ClientDetails
      for(int j =0;j<clientID.size();j++){

         cdList.add(new ClientDetails());

         cdList.get(j).ClientID = clientID.get(j);
         cdList.get(j).fullName = clientName.get(j);  
         cdList.get(j).fullAddress = clientAddress.get(j);
         cdList.get(j).clientsPolicies = arrayofPolsLists.get(j); 

      }

      //Creating a ClientDetailsList object
      ClientsDetailsList ClientDetList = new ClientsDetailsList();
      ClientDetList.aListOfClientDetails = cdList;


      return ClientDetList;


}
public String ClientID;
      public Name fullName;
      public Address fullAddress;
      public PolicyList clientsPolicies; 
 File clientsFile = new File("ClientDetailsInput");
 InputData e = new InputData();

 ClientsDetailsList testList = new ClientsDetailsList();          
 testList = e.readFile(clientsFile);

 System.out.println(testList.getClientDetails("IC-x00013A"));
public ClientDetails getClientDetails(String givenID) {
    boolean found = false;
    int index = 0;

    for(;index<aListOfClientDetails.size();index++){
        if((aListOfClientDetails.get(index).ClientID.equals(givenID))) {
            found = true;
            break;
        }
    }


    if(found)
        return aListOfClientDetails.get(index);
    else return null;

}
public ClientDetails getClientDetails(String givenID) {
    boolean found = false;
    int index = 0;
    ClientDetails details = null;

    for (ClientDetails check : aListOfClientDetails) {
        if(check.ClientID.equals(givenID)) {
            details = check;
            break;
        }
    }

    return details;
}
String check = aListOfClientDetails.get(index).ClientID;
System.out.println(givenID + " = " + check);
if ((check.equals(givenID))) {
IC-x00013A = IC-x00042W
IC-x00013A = 
IC-x00033D
IC-x00013A = 
IC-x00013A
IC-x00013A = 
IC-x00018O
IC-x00013A = 
IC-x00037N
IC-x00013A = 
IC-x00039A
IC-x00013A = 
IC-x00011I
IC-x00013A = 
IC-x00025V
IC-x00013A = 
IC-x00008L
IC-x00013A = 
IC-x00028F
IC-x00013A = 
IC-x00031X
IC-x00013A = 
IC-x00020C
IC-x00013A = 
IC-x00015H
clientID.add(tokens.get(0).trim());
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 13, Size: 13
    at java.util.ArrayList.rangeCheck(ArrayList.java:638)
    at java.util.ArrayList.get(ArrayList.java:414)
    at testsearch.TestSearch$ClientsDetailsList.getClientDetails(TestSearch.java:47)
    at testsearch.TestSearch.main(TestSearch.java:23)
for(;index<aListOfClientDetails.size();index++){
    if((aListOfClientDetails.get(index).ClientID.equals(givenID)))
        found = true;
}
return aListOfClientDetails.get(i);
return aListOfClientDetails.get(index);
String[] tokens = line.split( "/" );