Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何阻止人们在我的代码中按回车键_Java_Arrays_For Loop_Hashmap_Bluej - Fatal编程技术网

Java 如何阻止人们在我的代码中按回车键

Java 如何阻止人们在我的代码中按回车键,java,arrays,for-loop,hashmap,bluej,Java,Arrays,For Loop,Hashmap,Bluej,Hi基本上编写了这段代码,它将hashmap存储到外部文本文件中,因此当用户在write中键入时,他们在write index 1之后键入的第一个值和index2处键入的第二个值分别存储为键和值。问题是,所有内容都必须在一行上,如果用户在输入write后按return键,系统将崩溃。那么,我如何使它不允许用户在键入键和值之前按return键呢 这是我的密码 if (input.contains("write")) { String key = input.get(1); Stri

Hi基本上编写了这段代码,它将hashmap存储到外部文本文件中,因此当用户在write中键入时,他们在write index 1之后键入的第一个值和index2处键入的第二个值分别存储为键和值。问题是,所有内容都必须在一行上,如果用户在输入write后按return键,系统将崩溃。那么,我如何使它不允许用户在键入键和值之前按return键呢

这是我的密码

if (input.contains("write")) {
    String key = input.get(1);
    String value = "";
    for(int i=2; i<input.size(); i++) {
        value = value + " " + input.get(i);
    }
    instruct.mapWrite(key, value);
}
我使用scanner类获取输入,然后使用以下方法将字符串拆分为数组。这就是我如何将输入存储到HashMap中的方法

public ArrayList<String> getInput() 
    {
        System.out.print("> ");                // print prompt
        String inputLine = reader.nextLine().trim().toLowerCase();

        String[] wordArray = inputLine.split(" ");  // split at spaces

        // add words from array into ArrayList
        ArrayList<String> words = new ArrayList<String>();
        for(String word : wordArray) {
            words.add(word);
        }
        return words;
    }

你不能在这个级别阻止它

但是

告诉用户您的期望,而不是愚蠢的提示, 检查ifwordArray.length<3的令牌数,打印错误消息并再次询问。
你无法阻止这种行为,因此你必须让你的程序对它免疫。一个有效解决方案的细节取决于你的代码和问题的细节。你甚至不知道你是如何产生你无法阻止的输入的。也许,你想防止影响:1崩溃你的应用程序:测试什么是按下无效,空白。。。取决于输入值2如果希望控制台不显示CRLF,则必须使用控制台…@fge我已更新了代码,因此它将显示如何生成输入