2015-09-23 46 views
-3
import java.util.*; 

public class StudentWelcome 
{ 
    public static void main(String[]args) 
    { 
     Scanner in = new Scanner(System.in); 

     System.out.print("Please enter your student login"); 
     char ident = in.next().charAt(0,1); 

     if (ident == '19') 
     { 
      System.out.println("Welcome Freshman") 
     } 
     else if (ident == '18') 
     { 
      System.out.println("Welcome Sophomore") 
     } 
     else if (ident.equals(17)) 
     { 
      System.out.println("Welcome Sophomore") 
     } 
     else if (ident.equals) 
    } 
} 

我基本上試圖通過輸入「19johndo」或「17daquanra」來確定某人是哪年,並打印正確的歡迎聲明。 eclipse在第13行顯示錯誤,表示無效的字符常量。我該怎麼辦?如何在比較字符時修復無效的字符常量?

+0

'chatAt(0,1)'應該做什麼?你是否試圖在'String'的前兩個字符中使用'char'?你不能那樣做。 'char'是**一個**字符。出於同樣的原因,你不能做'19'或'18'或'17',因爲那些是2個字符。 – gla3dr

+0

請打開任何可靠的Java教程。閱讀關於類型(字符/字符串)和比較字符串 –

+0

檢查您比較的字符! – Shriram

回答

0

@VGR在上面的評論是正確的,這是基本的「Java介紹」的東西。但由於StackOverflow是一個資源,並且這是一個Q,所以我將提供一個A.

String上沒有charAt(int, int)方法,因此該行甚至不會編譯。如果您對輸入String的前兩個字符非常感興趣,請使用substring(0, 2)。這將返回String,而不是char,因此您需要更改ident變量的類型。您還需要更新在if語句中比較ident的方式,因爲您試圖與(無效的)char字面值進行比較。但是char s不能超過一個字符,所以你需要比較反對String文字,例如:

if (ident.equals("19")) { 

這將讓你的代碼編譯,甚至正常工作,但它仍然不是最好的方式來做你看起來像你試圖做的事情。但試圖討論更好的實現不在這個問題的範圍之內。