如何使用if语句将字符串与用户输入匹配? (JAVA)

时间:2014-01-17 03:13:23

标签: java arrays string input random

while (x == 1) 
  {
       String[] riddles = new String[5] ;  
          riddles[0] = ("Hellowrite1") ;
          riddles[1] = ("write2") ;
          riddles[2] = ("write3") ;
          riddles[3] = ("write4") ;
          riddles[4] = ("write5") ; 

       String[] answers = new String [5] ;
          answers[0] = ("1") ;
          answers[1] = ("2") ;
          answers[2] = ("3") ;
          answers[3] = ("4") ;
          answers[4] = ("5") ; 
int riddlenumber;
   riddlenumber = rand.nextInt (5);
   System.out.println (riddles [riddlenumber]);
   String useranswer;
   useranswer = scan.next();
   if

我将如何继续if语句? 我希望if语句将用户答案与答案字符串中的相应字符串进行比较。 基本上我想要它说,如果字符串useranswer = answer String#(riddlenumber,用随机函数选择的数字),那么system.out.println(“yay”); else --- -

2 个答案:

答案 0 :(得分:2)

我对scan.next感到紧张,但要回答你的问题:

if( answers[riddlenumber].equals(useranswer) ) {
    System.out.println("Yay, I guess");
} 
else {
    System.out.println("Not quite, try again...");
}

小点:我也可以说useranswer.equals(answers[riddlenumber])。但我是偏执狂。我绝对肯定存储的答案不是空的。我不是绝对肯定useranswer不会。通过按上面的顺序执行,我避免感觉我需要先检查null;你可以安全地调用Object.equals(null),但你不能调用null.equals(Object)。

答案 1 :(得分:0)

在字符串上使用.equals。

if (answer[0].equals(userAnswer))
{
   // Strings equal
}

请注意,==运算符仅检查字符串是否是同一个对象。如果字母相同则不一样。见 - https://stackoverflow.com/questions/767372/java-string-equals-versus