2017-06-29 24 views
-3

我想讓java對答案做出反應,不管以下字母是什麼,我只是希望它看到「y/Y」或「n/N」並相應採取行動。我希望它能夠識別「是」或「是」而不是「是」,因爲它們都以'y'開頭。我怎麼做?如何讓Java只查看像y或n這樣的第一個字母?

public static void reMatch(Scanner scan, Random rand, int gameCount, int 
totalCount) { 
     System.out.println("Would you like to play again?"); 
     String answer = scan.next();  
     if (answer.equalsIgnoreCase("y")) { 
      gameCount++; 
      game(scan, rand, gameCount, totalCount); 
     } 
     else if (answer.equalsIgnoreCase("n")) { 
      results(gameCount, totalCount); 
     } 

    } 
+4

'answer.substring(0,1).equalsIgnoreCase( 「Y」)'' –

+3

answer.toLowerCase()。startsWith( 「Y」)' –

回答

0

嘗試:

String firstChar = "" + answer.charAt(0); 
if(firstChar.equalsIgnoreCase("y")){ 
    .... 
} 
else if(firstChar.equalsIgnoreCase("n")){ 
    .... 
} 
+0

這將是良好的,以提供一些解釋。 – msanford

2

你需要測試在字符串中第一個字符的值,並採取相應的行動。

if (answer.charAt(0)=='y' || answer.charAt(0)=='Y') { 
     gameCount++; 
     game(scan, rand, gameCount, totalCount); 
    } 
    else if (answer.charAt(0)=='n' || answer.charAt(0)=='N') { 
     results(gameCount, totalCount); 
    } 
    else { 
    //do something else 
    } 

編輯:我強烈建議你使用if (answer.substring(0, 1).equalsIgnoreCase("y"))不是作爲作爲@ElliotFrisch在他的評論中說,你可以利用startsWith通過@Coldspeed

0

建議。是否意味着是與開始大多數的回答「你們」,如「啊」,「是的」,或者只是簡單的「是」,那麼我建議是這樣的:

if (answer.toLowerCase().startsWith("ye")) { 
    System.out.println("your answer stared with \"ye\""); 
} else { 
    System.out.println("your answer did not start with \"ye\""); 
} 

然而,你也可以只使用:

if (answer.toLowerCase().startsWith("y")) { 

如果你只想測試第一個字母。

P.S.謝謝艾略特弗裏施!

相關問題