gpt4 book ai didi

Java 读取过去保存的变量

转载 作者:行者123 更新时间:2023-11-30 04:06:04 25 4
gpt4 key购买 nike

我正在从用户输入中提取问题,这些问题正在被扫描以获取信息,并且我正在保存信息和原始问题。

保存问题+信息以便可以调用它的最佳方法是什么,以便我能够在刚刚提出的问题之前阅读 X 个问题并获取其中的信息/变量?

An example:

[User]"what is 1+1?"
[Reply]"two"
save information: "what is 1+1","two"

[User]"how is the dog?"
[Reply]"fine"
save information:"how is the dog?",subject = "dog", condition = "fine"

getQuestion(1) -> "what is 1+1?"
getInformation(current) -> subject = "dog" condition = "fine"

此外,使用 int(问题 X)、字符串(问题)或其他来调用每个问题的信息会更好吗?

到目前为止的代码:

Map<String,String> variable = new HashMap<>();
public QuestionInfo(String name,String variable) {
this.variable.put(name, variable);
}
public String get(String name){
if(variable.containsKey(name)) {
return variable.get(name);
} else {
return "";
}
}

我想使用:

  Map<String,QuestionInfo> Questions = new HashMap<>();

首先,但如果我想打电话,我不能使用 int所以相反:

Map<Integer,QuestionInfo> Questions = new HashMap<>();

然后我可以将问题添加为第一条信息。

最佳答案

由于您想保留响应的顺序,因此您可能需要使用 List .

然后您只需决定要制作什么样的列表。由于您有两个密切相关的项目 - 主题(字符串)和条件 - 我可能会创建一个自定义类:

import java.util.Map;
public class QuestionInfo {

private String question;
private Map<String, String> variables;

public QuestionInfo(String question, Map<String, String> variables) {
this.question = question;
this.variables = variables;
}

public String question() {
return question;
}

public Map<String, String> vars() {
return variables;
}
}

然后您将创建列表来存储这些内容,例如:

List<QuestionInfo> questionList = new ArrayList<QuestionInfo>();

还有其他方法来存储这些字符串(例如,您可以将它们与分隔符连接起来,或使用 String[2])。但在我看来,这可能是以后最容易阅读和理解的方法。

以下是用户将输入的内容的近似值,以及如何使用 questionList + QuestionInfo 来存储数据:

[用户]“狗怎么样了?”[回复]“还好”

Map<String, String> varMap = new HashMap<String, String>();
varMap.put("subject", "dog");
varMap.put("condition", "fine");
questionList.add(new QuestionInfo("how is the dog?", varMap));

现在您可以使用以下方式访问此信息:

questionList.get(0).question() // returns "how is the dog?"

questionList.get(0).vars().get("condition") // returns "fine"

请注意,这掩盖了实际收集用户输入的代码。

还有其他可能性。例如,您可以将 String... 传递给 QuestionInfo 构造函数并解析变量/创建映射。您可能还希望将整个响应存储为与变量分开的字符串。如果您要填充一组一致的键,您可能还想为键创建一个枚举。

关于Java 读取过去保存的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20686686/

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