我需要帮助制作一个java chatbot程序,但我无法让程序将用户输入与存储的字符串进行比较

时间:2017-05-28 12:38:21

标签: java input compare chatbot

这是我使用的字符串 String [] hi = {"hello","hi","whats up"};

我希望程序在每次用户输入“hi”时显示字符串中的一个单词但我的代码无法比较用户输入和字符串

do{
  System.out.println("You:");
  s.next();

  String[] userinput={"hi"};

  if(userinput.equals("hi")){
    Random r = new Random();
    rno = r.nextInt(3);
    System.out.println("bot:"+hi[rno]);
  }
  else{
    System.out.println("Bot:Bye");
  }
}while(true);

请帮助

5 个答案:

答案 0 :(得分:1)

将字符串数组与字符串进行比较。由于类型不同,这将始终返回false。

相反,您可以使用Collection的contains方法。例如:

List<String> userInput = Arrays.asList("hi");
if (userInput.contains("hi")) {
    //Do something
}

答案 1 :(得分:0)

userinput是String [],你需要比较String之间的

userinput[0].equals("hi")

答案 2 :(得分:0)

用户输入永远不会等于&#34; hi&#34;因为&#34;嗨&#34;是String对象,userinput是String [](字符串数组)对象。

如果userinput应该是一个数组(一串字符串),那么你需要通过执行以下操作进行比较:

for(String s:userinput){
    if(s.equals("Hi")){
        //do whatever you want to do when this happens
    }
}

如果userinput总是一个字符串,那么你应该说

String userinput = "Hi";

答案 3 :(得分:0)

使用地图代替

Map<String,String>map=new HashMap<String,String>();
map.put("Hello","Hi");
System.out.println(map.get(s.next()).toString());

答案 4 :(得分:0)

您正在将字符串数组与字符串进行比较。试试userInput[0].equals("hi")