2015-10-21 55 views
0

在我的if語句中,我試圖檢查string的第一個字母是Y還是y,然後按照這種方式繼續。下面是我的,但我不相信它是正確的。如何檢查字符串中的第一個字母是否等於某個字母?

System.out.print("Do you wish to do another calculation (Yes/No): ") 
     option = scan.next(); 
     if (option.substring(0,1) == "N" && option.substring(0,1) == "n") 
     { 
      System.out.println("Have a good day"); 
      System.exit(0); 
     } 
bmi.setOption(option); 

我在我的程序早些時候實例optionString option = " ";。我知道如何檢查字符串是否等於某個字符,但是在檢查字符串的第一個字符是否等於某個字符時遇到問題。

謝謝!

+0

你的問題是,你用'=='比較字符串;使用'.equals()'(除了@Victory提到的&&''||'問題外))。 –

+0

您也可以轉換爲小寫'substring(0,1).toLowerCase()'並且只執行一次檢查 – sam

回答

0

的第一個字符不能同時爲「N」和「n」,看起來像你希望它是「N」或「n」

 if (option.substring(0,1).equals("N") || option.substring(0,1).equals("n")) 

我們已經==這之前更像一個內存比較,我們想比較值,所以我們使用equals

+0

另外,String.startsWith(前綴) – tom

+0

謝謝!我在字符串類中使用了startsWith()方法,該程序效果很好。我沒有意識到那是在Java文檔中錯過了它。 – Arkoh

+0

該解決方案分配4個附加字符串,2個用於子字符串,2個用於「n」和「N」。另外startsWith()解決方案分配額外的2個字符串。所有這些分配都可以省略。 –

1
if (Character.toLowerCase(option.charAt(0)) == 'n') 
相關問題