2014-08-27 21 views
-1

在我的程序中,我有一個名爲yesOrNo的字符串,它是一個鍵盤輸入。我創建了一個if語句來測試yesOrNo是否爲以下值之一:「Y」,「y」,「Yes」, 「yes」運營商。如何在Java中創建x = y或z語句

我收到了錯誤信息:未定義爲參數類型java.lang.String,java.lang.String。什麼是正確的方式來做這樣的事情?謝謝。

Scanner keyboard = new Scanner(System.in); 
    String yesOrNo = keyboard.nextLine(); 
    System.out.println(yesOrNo + "?"); 

    if (yesOrNo.equals("Y" || "y" || "Yes || "yes")){ 

回答

0

像這樣:

if (yesOrNo.equals("Y") || yesOrNo.equals("y") || yesOrNo.equals("Yes") || yesOrNo.equals("yes")){ 
    //... 
} 
1

嘗試:

if(yesOrNo.equals("Y") || yesOrNo.equals("y") 
    || yesOrNo.equals("Yes") || yesOrNo.equals("yes")) 
8

我能想到的最短是:

if (yesOrNo.equalsIgnoreCase("Y") || yesOrNo.equalsIgnoreCase("Yes")) 
+0

啊!我想知道你是否可以做一些可以忽略首都的事情。謝謝。 – Andrew 2014-08-27 21:22:11

0
if (yesOrNo.equals("Y") || yesOrNo.equals("y") || yesOrNo.equals("Yes") || yesOrNo.equals("yes")) 
+2

請提供更詳細的解釋如何工作,而不是隻發佈代碼。 – 2014-08-27 21:44:06

6

你的語法是有效。它需要有單獨的條款:

if(yesOrNo.matches("Y|y|Yes|yes")) { 
    // Code. 
} 

額外的閱讀

  • 你應該看看String Docs

    if(yesOrNo.equals("Y") || yesOrNo.equals("y")...) 
    

    或清潔劑,如果你使用正則表達式會。他們詳細介紹各種有用的東西。

  • 請閱讀Regex。它使得複雜的String比較非常簡單。

  • 最後,請查看不同的Operators,以正確的語法查看可以形成哪種邏輯語句。

+0

謝謝。我會研究這些鏈接。 – Andrew 2014-08-29 02:41:26

3

兩種方式:

  1. 使用equals

    if (yesOrNo.equals("Y") || 
        yesOrNo.equals("y") || 
        yesOrNo.equals("Yes") || 
        yesOrNo.equals("yes")) { 
        //... 
    } 
    
  2. 使用正則表達式(shorther比使用||多次):

    if (yesOrNo.toLowerCase().matches("y|yes")) { 
        //... 
    } 
    
3

或者,您可以創建可接受答案的列表並檢查答案是否在該列表中。

List<String> kindOfYes = Arrays.asList("yes", "y", "okay", "righto"); 
if (kindOfYes.contains(yesOrNo.toLowerCase())) { ... 
0

接下來的代碼呢?

String yesOrNo = keyboard.nextLine(); 
if (yesOrNo.toLowerCase().charAt(0) == 'y') { 
    // 
} 

注意:你認爲有更快方式?我想不是。

+0

'「yNo」'........ – 2014-08-27 21:33:08

+0

嘿@LuiggiMendoza你真的認爲用戶寫這樣的東西嗎?順便問候祕魯。 – 2014-08-27 21:35:26

+0

我希望用戶能看到任何內容,請參見[https://www.google.com/search?q=programmers+users&es_sm=93&source=lnms&tbm=isch&sa=X&ei=ck_-U9XpN4-4ggTgsoHoAg&ved=0CAgQ_AUoAQ&biw=1517&bih=714&dpr= 0.9)。感謝問候:),向墨西哥人民問好。 – 2014-08-27 21:37:22

0

您的程序語法是錯誤的。

這是正確的:

Scanner keyboard = new Scanner(System.in); 
    String yesOrNo = keyboard.nextLine(); 
    System.out.println(yesOrNo + "?"); 

    if(yesOrNo.equals("Y") || yesOrNo.equals("y") || yesOrNo.equals("Yes") || yesOrNo.equals("yes")) { 
相關問題