gpt4 book ai didi

java - 我在创建响应式机器人时遇到问题

转载 作者:行者123 更新时间:2023-11-29 04:32:27 27 4
gpt4 key购买 nike

我一直在研究一个只对特定事物使用react的简单机器人,但如果它不理解,请告诉用户。我有两个问题。我为此使用了开关功能,并想将默认设置为不理解的机器人。当我尝试启动该程序时,我注意到机器人在我输入任何内容之前就说它不能立即理解。我将如何以默认情况仅在用户输入内容后发生的方式执行此操作。我尝试使用

if(!userInput=null) {

然后是 switch 语句,但这给了我一个错误,因为它说它不是 boolean 值。

还有一个问题。变量 userInput 也有问题。 Eclipse 说“资源泄漏:userInput 永远不会关闭” 有谁知道如何解决这个问题?这是我当前的代码:

package com.robot;

import java.util.Scanner;
public class Robot {

public static void main(String[] args)
{
Scanner userInput = new Scanner(System.in);

switch(userInput.toString()) {

case "hello":
robotSay("hello");
break;
case "hi":
robotSay("hi");
break;
case "hey":
robotSay("hello");
break;
default:
robotSay("I do not understand");
break;
}


}
public static void robotSay(String string)
{
System.out.println(string);
}
}

最佳答案

你应该使用

switch(userInput.nextLine()) {

.nextLine() 返回 System.in 中的第一个未读行(并在必要时等待输入)。

.toString() 返回对象的 String 表示,在你的情况下它会像这样锁定:

java.util.Scanner[delimiters=\p{javaWhitespace}+][position=0][match valid=false][need input=false][source closed=false][skipped=false][group separator=\.][decimal separator=\,][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\Q�\E][infinity string=\Q∞\E]

ResourceLeak 被创建,因为您永远不会关闭 InputStream(在 Scanner 内部),因此在您的程序完成之前,其他程序将无法使用该资源。

就这样

userInput.close();

最后。

关于java - 我在创建响应式机器人时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43295144/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com