2016-11-05 137 views
0

我的工作对继续要求用户输入航班号即FR201的程序。然后该程序将读取航班代码并返回航空公司和航班号..但我无法正确工作,并且刚刚得到“无效输入”。 这是我试过的,任何帮助表示赞赏!switch语句困难

import java.util.Scanner; 
public class flightcode{ 
public static void main(String[]args) 
{ 
    String s2; 
    do{ 

    Scanner s1 = new Scanner(System.in); 
    System.out.println("Enter a number"); 

    s2 = s1.nextLine(); 
    int num = s2.length()-2; 
    int s3=0; 


    if(s2.substring(0,1)=="EI") 
    { 
    s3 = 1; 
    } 

    else if(s2.substring(0,1)=="FR") 
    { 
    s3 = 2; 
    } 
    else if(s2.substring(0,1)=="AF") 
    { 
    s3 = 3; 
    } 
    else if(s2.substring(0,1)=="AA") 
    { 
    s3 = 4; 
    } 
    else if(s2.substring(0,1)=="IB") 
    { 
    s3 = 5; 
    } 



    switch (s3) 

    { 

     case 1: System.out.println("Airline: Aer Lingus - Flight number:" + s2.substring(2)); break; 
     case 2: System.out.println("Airline: Ryanair - Flight number:" + s2.substring(2)); break; 
     case 3: System.out.println("Airline: Air France - Flight number:" + s2.substring(2)); break; 
     case 4: System.out.println("Airline: American Airlines - Flight number:" + s2.substring(2)); break; 
     case 5: System.out.println("Airline: Iberia - Flight number:" + s2.substring(2)); break; 
     default: System.out.println("Invalid input"); break; 

    } 
    } 
     while(s2!= "END"); 


    } 
} 
+1

'substring(0,1)=“”+ charAt(0)'。它不能返回“EI”。另外,你应该使用'equals()'或'equalsIgnoreCase()'函数来比较字符串。 – progyammer

+0

我不太明白你的意思是由substring(0,1)=“”+ charAt(0), 谢谢你的帮助。 –

+0

'substring(0,1)'返回字符串形式的字符串的第一个字符。所以它与'charAt(0)'类似,保存由substring返回的值是'string',而不像'charAt()' – progyammer

回答