[英]How to make a x = y or z statement in Java
在我的程序中,我有一個名為yesOrNo的字符串,它是鍵盤輸入。 我使用||創建了一個if語句來測試yesOrNo是否為以下之一:“ Y”,“ y”,“ Yes”,“ yes” 操作員。
我收到錯誤消息:運算符|| 對於參數類型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")){
我能想到的最短的是:
if (yesOrNo.equalsIgnoreCase("Y") || yesOrNo.equalsIgnoreCase("Yes"))
您的語法無效。 它需要有單獨的子句:
if(yesOrNo.equals("Y") || yesOrNo.equals("y")...)
或更清潔的將是如果您使用正則表達式:
if(yesOrNo.matches("Y|y|Yes|yes")) {
// Code.
}
額外閱讀
您應該查看String Docs 。 他們詳細介紹了各種有用的東西。
在Regex上閱讀。 它使復雜的String
比較非常簡單。
最后,查看不同的運算符,以了解可以使用正確的語法形成什么樣的邏輯語句。
兩種方式:
使用equals
:
if (yesOrNo.equals("Y") || yesOrNo.equals("y") || yesOrNo.equals("Yes") || yesOrNo.equals("yes")) { //... }
使用正則表達式(比多次使用||更短):
if (yesOrNo.toLowerCase().matches("y|yes")) { //... }
或者,您可以創建可接受答案的列表,然后檢查答案是否在該列表中。
List<String> kindOfYes = Arrays.asList("yes", "y", "okay", "righto");
if (kindOfYes.contains(yesOrNo.toLowerCase())) { ...
嘗試:
if(yesOrNo.equals("Y") || yesOrNo.equals("y")
|| yesOrNo.equals("Yes") || yesOrNo.equals("yes"))
像這樣:
if (yesOrNo.equals("Y") || yesOrNo.equals("y") || yesOrNo.equals("Yes") || yesOrNo.equals("yes")){
//...
}
if (yesOrNo.equals("Y") || yesOrNo.equals("y") || yesOrNo.equals("Yes") || yesOrNo.equals("yes"))
下一個代碼呢?
String yesOrNo = keyboard.nextLine();
if (yesOrNo.toLowerCase().charAt(0) == 'y') {
//
}
注意 :您認為有更快的方法嗎? 我想不是。
您的程序語法錯誤。
這是對的:
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")) {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.