2014-09-26 66 views
2

我想在屏幕上顯示一個有兩個選項的問題(你結婚了嗎:y/n)。用戶必須按或「y」或「n」。之後,我想在屏幕上打印「已婚」或「未婚」。如何將char轉換爲Java中的布爾值?

我想過在使用char來獲得輸入通過Scanner類(System.in)並將此char轉換爲布爾類型以便用if語句顯示兩個選項後。問題是我不知道如何將此char轉換爲布爾類型。是否有意義?有其他方式以不同的方式來做這個例子嗎?

非常感謝

+0

無需投射。只需檢查'if(ch =='y'|| ch =='Y'){...} else {...}'其中'ch'是您的'char' – pzaenger 2014-09-26 12:03:01

+0

初學者,不要使用布爾值,使用枚舉 – user902383 2014-09-26 12:04:49

回答

2

是的,你試圖做的方式是不做場景。你可以做如下

Scanner sc=new Scanner(System.in); 
String st=sc.nextLine(); 
if("y".equalsIgnoreCase(st)){ 
    // married 
}else if("n".equalsIgnoreCase(st)){ 
// not married 
} 
0

很簡單:

boolean isYes = (inputChar=='y' || inputChar=='Y'); 

你也可以轉換的char /小寫,所以你不會需要||。取決於你有多少測試,如果它是值得的。

在這種情況下,那些括號並​​不是真的需要,因爲||比賦值有更高的優先級,但是我個人發現,當像這樣的「條件」包含在括號中時,它會更清晰。

1

我認爲枚舉是一個很好的方法。將規則封裝在對象中。

將用戶響應綁定到對象是一種視圖責任。輸入是下拉菜單還是文本框?

婚姻狀況是一個有趣的。還有比「是/否」多口味:單身,已婚,離婚,分居,卡戴珊等

public class MaritalStatus { 
    MARRIED, NOT_MARRIED; 
} 
0

你不能簡單地投charboolean,但你可以把它比作'y''n'

public static boolean charToBool(char c) { 
    // c = Character.toLowerCase(c); 
    switch (c) { 
     case 'y': 
      return true; 
     case 'n': 
      return false; 
     default: 
      throw new IllegalArgumentException("Must be either 'y' or 'n'."); 
    } 
} 
0

你不能將一個字符轉換成布爾值,因爲程序應該如何知道'y'表示真,'n'表示假? if語句

bool married = false; 
if(input.equalsIgnoreCase("y")) 
    married = true; 

我敢打賭,一個簡單的谷歌搜索 使用會幫助你做作業。