2013-04-07 25 views
0

我需要從一個字符串與字符串數組比較的indexOf幫助並顯示正確的匹配。的indexOf()String類的Java

public static void printvehicleMAKE(ServiceAppointment[] services, Scanner input){ 

    System.out.print("Enter vehicle make: "); 

    String make = input.next(); 
    String model = make.substring(0,3); 

    System.out.println(model); 

    boolean flag = false; 

    System.out.println("Details of all vehicles manufactured by " +make+" : "); 
    for (int i=0;i<6;i++) { 
     if(model.equalsIgnoreCase(services[i].getvehicleMAKEMODEL())){ 
      System.out.printf("\n%10s%15s%20s", services[i].getregoNUMBER(), 
        services[i].getbuildYEAR(), services[i].getvehicleMAKEMODEL()); 
      flag = true; 
      } 

    } 

    if(flag==false) 
     System.out.print("No service appointments were found for vehicles " 
       + "made by " + make); 
} 

例子。如果我輸入「toyota」或「aston」,我希望它比較字符串的第1個/第2個字符,並返回字符串數組中的匹配項。

+0

而你的實際問題是? – 2013-04-07 10:50:11

+0

如果我輸入「到」,我希望它返回字符串/秒,在數組列表中的字符串的第2個字符相匹配。例如,如果我輸入「as」,它將顯示「aston martin」或「to」,它將顯示「豐田凱美瑞」等等。 我不知道的indexOf()方法是真正有用與否,當談到比較字符串。 – Ken 2013-04-07 11:03:13

+0

現在,如果我輸入「到」,會顯示「沒有找到預約服務車輛」,而不是「豐田佳美」,或者說前兩個字符匹配其他字符串。 – Ken 2013-04-07 11:04:56

回答

0

假設

services[i].getvehicleMAKEMODEL()) 

給出完整的字符串,如「豐田佳美」你必須調整你的過濾標準。目前您比較"to""Toyota Camry"。這不匹配。所以你應該用這個代替

model.equalsIgnoreCase(services[i].getvehicleMAKEMODEL().substring(0,3)) 
+0

太棒了!有效!非常感謝您的幫助。 ^。^我知道這真的很簡單。 – Ken 2013-04-07 11:28:10