我试图让我的节目接受像什么这样的话,但是它不是所有的东西都是像你好的话,嗨但是没有任何像{whats up}这样的空格的话可以有人对什么有所了解我做错了吗?我的代码没有错误只是我试图让它接受像什么一样的话,你怎么样
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package bot;
import java.util.*;
/**
*
* @autr kesha
*/
public class tst {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
HashMap<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
// the ArrayList replaces your HashSet.
ArrayList<String> list = new ArrayList<String>();
ArrayList<String> list1 = new ArrayList<String>();
Random r = new Random();
list.add("Hello");
list.add("Hi");
list.add("How's you whats up");
list.add("Hey");
list1.add("Yuh mother");
map.put("hi", list);
map.put("whats up", list);
map.put("hello", list);
map.put("hoe", list1);
System.out.println("enter Hi");
String str = input.next().toLowerCase().trim();
while(map.containsKey(str)){
if (map.containsKey(str)) {
ArrayList<String> tmpList = map.get(str);
int randomNumber = r.nextInt(tmpList.size());
System.out.println(tmpList.get(randomNumber));
System.out.println("enter Hi");
str = input.next().toLowerCase().trim();
}
}
}
答案 0 :(得分:2)
您正在调用Scanner.next()
,其中“查找并返回此扫描程序中的下一个完整令牌”。
您想要拨打nextLine()
,这需要一整行输入。
答案 1 :(得分:0)
我相信.next()会将你的字符串剪切到空格。 试试这个..
String str = input.nextLine().toLowerCase().trim();