2014-01-25 96 views
1
Scanner in = new Scanner(System.in); 

     String err = "\nThat's not a card color!\n\n"; 

System.out.print("Is your card red, green or blue? "); 
    String card = in.nextLine(); 
     if ((!"red".equals(card))){ 
      System.out.print(err); 
      System.exit(0); 
     } 

用戶必須輸入等於「紅色」,「綠色」或「藍色」的字符串。我只需'紅'就可以正常工作,但是如何檢查多個字符串?從用戶輸入中讀取並檢查多個字符串

謝謝大家!它現在正在工作。對不起,我對Java很陌生。我嘗試過的其他人,如果之前,但現在的

System.out.print(err); 
    System.exit(0); 

處於else語句是可以正常使用!

回答

0

考慮:

如果 「紅色」,否則,如果 「綠色」 否則,如果 「藍色」,否則打印! 「錯」

+0

謝謝,但我已經嘗試把它放在'else if'語句中。 哦,所以把錯誤放在別的地方,不要包括'!' 它的工作!非常感謝,先生! – user3236283

0

你要做的是檢查卡片是否紅色,如果它不是紅色的輸入是錯誤的,但你想要做的是檢查每種顏色,如果畢竟輸入匹配沒有字符串,你打印錯誤。

所以只是去像

if(card.equals("red")){ 
... do something 
} 
else if(card.equals("blue"){ 
... do something else 
} 
else 
    error 
3

使您要檢查,然後遍歷它,像這樣的String秒的數組:

boolean foundColor = false; 
for(String color:new String[]{"red","green","blue"}){ 
    if (color.equals(card)){ 
     foundColor = true; 
    } 
} 
if(!foundColor){ 
    System.out.print(err); 
    System.exit(0); 
} 
+1

無論輸入如何,這實際上都會打印錯誤,因爲沒有字符串可以同時爲紅色,綠色和藍色。 – Njol

+0

@Njol你絕對正確。愚蠢的錯誤在我的角色。剛糾正它。 – Didericis

+0

如果有人看到這個,Njol的代碼更好。 – Didericis

1

這裏是一個一行,如果你想使你的代碼更加簡潔:

if (!Arrays.asList("red", "green", "blue").contains(card)) { 
    System.out.print(err); 
    System.exit(0); 
} 
相關問題