Java if / else与比较字符串

时间:2013-01-13 06:20:23

标签: java printing buffer if-statement

  

可能重复:
  How do I compare strings in 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 个答案:

答案 0 :(得分:2)

你可以使用string.equals()来比较字符串 例如。 “是”.equals(答案)用于比较是和变量答案

答案 1 :(得分: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等。它只是忽略了这种情况。

答案 2 :(得分:1)

调查switch语句:来自tutorial

的信息

然后,您可以选择“可能”,“不是现在”等选项,作为可能的响应,除了是和&号

答案 3 :(得分: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");
         }


         } } }