Java else如果字符串不起作用 - Scanner(System.in);

时间:2016-09-02 14:02:48

标签: java string if-statement

我是java和整体编程的新手。最近,我已经开始了IA模拟程序,但我认为我的else-if部分代码没有显示在终端中。但是,ifelse语句似乎完美无缺 我很感激您提供的任何帮助 抱歉,我的英语乏善可陈,而且我的语言不准确。

import java.util.Scanner;
public class IA
{
    public static void main(String []args){

       Scanner lector= new Scanner(System.in);

       System.out.println("Di algo");
       String input = lector.next();    

       if (input.equals ("Hola") || input.equals("hola") || input.equals("ola")){
            System.out.println("Hola, humano");
       }else if (input==("quien eres")){
            System.out.println("Una pobre ilusión de inteligencia artificial");
       }else{
        System.out.println("Adiós");
       }
   }
}

2 个答案:

答案 0 :(得分:2)

您缺少的是不检查输入值。首先检查输入值......:

System.out.println(input);

...并查看该值是否正常。然后你可以说你的" if-else"组件是否正常工作。

同时删除@ input.equals ("Hola")的差距。它必须是input.equals("Hola")

补充:您不能将==运算符用于Java中的字符串。您可以使用var.equals("something")检查变量var是否等于"something"

添加2:您必须使用scanner.nextLine()完全获取键入的字符串,而不是使用scanner.next(),因为next()会获得下一个字段。

这是your working code

答案 1 :(得分:2)

如果您希望拾取包含空格的标记,则需要更改扫描程序的分隔符。由于默认分隔符是空格,如果遇到quien eresnext()将为quien