2013-04-28 33 views
0

「if」語句只允許在其中放入數字。 有沒有辦法讓它讀取字母? 我只在我的Java第五課(我學習單一,老師很慢,但我想快速學習東西)如何設置語句以讀取字母而不是數字?

例如。

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

     Scanner scan = new Scanner(System.in); 
     int answer1; 
     System.out.println("Do you like Java?"); 
     answer1 = scan.nextInt(); 
     if (answer1 == yes) 
     System.out.println("Cool ~"); 
     else 
     System.out.println("Ehh..."); 
    } 
} 

我希望把「是」,而不是數字5 所以,如果用戶鍵入「是」會打印出「正確」。

P.S.我在搜索引擎中沒有找到明確的答案。 這不是一個重複的線程,因爲我試圖找到明確的答案。 我需要關於它的詳細解釋。 我還是個初學者,用那些「高科技java語言」不會幫助我。

+0

這是好多了 - 一個很小的代碼,完整的例子說明了這個問題(在Java中這通常是使用'main'方法和任何進口的最小可能類,這正是你所得到的)。 – Flexo 2013-04-28 13:27:17

+0

那麼我現在該做什麼?大聲笑它給出了一個錯誤,並標記爲「是」,就好像它不是一個有效的單詞。 – Luminous 2013-04-28 13:34:35

+0

它編譯和運行在我的機器上,並在:http://ideone.com/3dFevM - 也許你錯過了報價標記? – Flexo 2013-04-28 13:37:07

回答

2

您需要修改程序,使掃描儀讀取String而不是int。你能做到這一點的:

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

     Scanner scan = new Scanner(System.in); 
     String answer1; 
     System.out.println("Do you like Java?"); 
     answer1 = scan.next(); 
     if (answer1.equals("yes")) 
     System.out.println("Cool ~"); 
     else 
     System.out.println("Ehh..."); 
    } 
} 

我以前next()這個,因爲我們只需要一個字(令牌),但要知道,有閱讀絃樂其他選項。

還請注意,我已經改變了測試中的條件,因爲它現在是一個String。見this answer for more on comparing Strings

+0

哦!現在我懂了!謝謝謝謝!我不僅複製粘貼它,我也從中學到了:)基本上我需要將int轉換爲String,將「==」轉換爲「equals」:D謝謝!接受了這個答案。順便說一句,如果我想用3個字例如?例如「是」或「是」或「是」,我該怎麼做? lol – Luminous 2013-04-28 13:38:36

+0

@發光的完整性你需要使用'.equals',因爲'String',但不能'int'的原因是因爲'int'是一個基元,但是'String'是一個Object。 – Flexo 2013-04-28 13:41:04

+0

好吧,很酷,我學到了另外一件事:P – Luminous 2013-04-28 13:42:34

1

您需要修改程序,以便掃描器讀取字符串而不是int。你能做到這一點的:

進口java.util.Scanner的;公共類的Java { 公共靜態無效的主要(字串[] args){

Scanner scan = new Scanner(System.in); 
    String answer1; 
    System.out.println("Do you like Java?"); 
    answer1 = scan.next(); 
    if (answer1.equals("yes")) 
    System.out.println("Cool ~"); 
    else 
    System.out.println("Ehh..."); 
} } 

我用的next()這個,因爲我們只需要一個字(令牌),但要知道,有閱讀其他選項字符串。

還請注意,我已經改變的條件下測試,因爲它是現在 一個字符串。有關比較字符串的更多信息,請參閱此答案。

好吧,如果你想要的程序讀取兩個單詞和數字內容: 這是我的計劃(更深入,當你看到完整的東西),但是這是第5個部分之一(即看起來像),在那裏我有計劃...

public static void Gdr1() { 
     try { 
      System.out.print("[Code: Gdr1] Grade 1: %"); 
      Scanner gdr1 = new Scanner(System.in); 
      Z = gdr1.next(); 
      Z = Double.toString(Grd1); 
      Grd1 = Double.parseDouble(Z); 
      if ((Grd1<100)&&(Grd1>=5)) { 
       Gdr2(); 
      } else if ((Grd1>=100)&&(Grd1<125)) { 
       System.out.println(" System> Great Job "+Stu+"!"); 
       Gdr2(); 
      } else if (Grd1<5) { 
       System.out.println("I'm sorry, the lowest grade I am allowed to compute is 5..."); 
       Gdr1(); 
      } else if (Z.equalsIgnoreCase("restart")) { 
       restart01(); 
      } else { 
       System.out.println("("+Z+") cannot be resolved in my system..."); 
       Gdr1(); 
      } 
     } catch (Exception e) {} 
    } 

現在一切正常,在節目中,除了爲當最終用戶的輸入= "restart",我知道有一些在程序代碼的看起來很複雜,但它確實有效(大部分),任何人都可以幫助我解決這個問題,在2017年1月25日下午11:59之前在我的學校進行投資組合。

Z(常量字符串)的東西,""+Stu+""(可變輸入),和[Code: Gdr1]是有目的的...

相關問題