这是我使用的字符串
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);
请帮助
答案 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")