0

可能重复:
如何比较 Java 中的字符串?

是的,这个标题听起来很有趣,我正在为一个特别的人做这个项目,我想通过给她写一个简单的程序来邀请她。我在执行这个想法时遇到了一些麻烦。我有一个伪代码计划,但需要帮助执行它。我计划让她在控制台中输入是或否的问题答案,并让程序根据她的输入给出答案。我的想法是她对问题的输入是或否的答案,然后说如果输入是“是”则打印此语句,否则如果“否”则打印此语句。我目前在让 if else 部分工作时遇到问题。我不能让字符串在 if 语句中表现得像布尔值,所以我需要一些帮助。我开始的代码:

import java.io.*;
public class ask {
    public static void main(String [] args) throws IOException {
        BufferedReader in = new BufferedReader
                (new InputStreamReader(System.in));
        String answer;
        System.out.print("Would you like to go out with me? ");
        System.out.flush();
        answer = in.readLine();
        Boolean hope = Boolean.valueOf("yes");
        if (answer == hope) {
            System.out.print("Awesome!");
        }

        else
            System.out.print("Not awesome!");

    }
}

显然,我实际上并没有使用那些回答的那个问题,我只是把它作为例子只是为了让程序本身工作。我无法将答案与希望进行比较,因为一个是布尔值,另一个是字符串,我也不能用字符串做字符串,所以我该如何让它工作。有任何想法吗?编辑:伙计们只是说,我知道她会说是的,这只是一种有趣的愚蠢方式来约她。这样做的时候我会亲自和她在一起,我会告诉她只使用是或否,这样就可以了,这只是一个简单的小项目。除了如何让它工作之外,不需要任何建议或意见!谢谢!

4

4 回答 4

3

您可以使用 string.equals() 来比较字符串 例如 "Yes".equals(answer) 来比较 yes 和变量 answer

于 2013-01-13T06:24:31.803 回答
2

您可以使用字符串比较方法equalsequalsIgnoreCase来比较用户输入。

试试这个

public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String answer;
        System.out.print("Would you like to go out with me? ");
        System.out.flush();
        answer = in.readLine();

        if (answer.equalsIgnoreCase("YES")) { // Comparing the input with String.
            System.out.print("Awesome!");
        }

        else
            System.out.print("Not awesome!");

    }

我建议你使用equalsIgnoreCase方法。由于用户可以输入 yes、YES、yeS 等。它只是忽略大小写。

于 2013-01-13T06:29:56.913 回答
1

调查 switch 语句:教程中的信息

然后,除了“是”和“否”之外,您还可以输入“也许”、“现在不行”等选项作为可能的响应。

于 2013-01-13T06:28:56.887 回答
0

在这里你去:只需用您的特定问题替换数组值

import java.io.*;
import java.util.Scanner;
public class ask {
public static void main(String [] args) throws IOException {

    String[] Questions={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};

    int min=0;
    int max=Questions.length;
    String answer = null;
    Scanner input = new Scanner(System.in);
    for(int i=0;i<Questions.length;i++){
         int randomNum = min + (int)(Math.random()* max);

         System.out.println("Your Question: " +Questions[randomNum] ); 
         answer =input.next();
         if (answer.equals("yes")){
             System.out.println("Awesome Girl");
         }
         if (answer.equals("no")){
             System.out.println("Bad Girl");
         }

         if (answer.equals("Hope")){
             System.out.println("Hmmm..Some Hope Left");
         }


         } } }
于 2013-01-13T06:36:07.727 回答