2013-04-07 27 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