Java append将输出重复四次
当我在输入文本字段中键入您的名字时,为什么会出现“我的名字是”4次 公共空比较(Q){ 字符串文件名=目录+“memoryBank.txt”Java append将输出重复四次,java,string,loops,netbeans,append,Java,String,Loops,Netbeans,Append,当我在输入文本字段中键入您的名字时,为什么会出现“我的名字是”4次 公共空比较(Q){ 字符串文件名=目录+“memoryBank.txt” 如果没有运行示例,我相信您的问题就在这里 while((line = bufferedReader.readLine()) != null) { String[] parts = line.split(" - "); String subject = parts[0]; String question = parts[1];
如果没有运行示例,我相信您的问题就在这里
while((line = bufferedReader.readLine()) != null) {
String[] parts = line.split(" - ");
String subject = parts[0];
String question = parts[1];
String answer = parts[2];
//if(input.equals(question) && !subject.equals(currentSubject)){ currentSubject = subject; }
// if(input.equals(question) && subject.equals(currentSubject)){ Output.append(answer); }
if(input.contains("what is your name")) {
Output.append("my name is"+ newline);
}
}
同样,在循环的每次运行中,如果
JTextField
输入
包含文本您的名字是什么
,它将附加字符串“我的名字是”+换行符
到文本字段。如果文件中有4个问题,它将被附加4次,如果有100个问题,它将被附加100次。在玩了几个小时后,我在程序员的帮助下设法修复了它。
固定代码:
我无法使block quote正常工作,因此下面是一幅图像:
为了更好地帮助和更快地考虑,张贴一个I已经添加了一个SSCCE…一个短的、自包含的、可编译的示例(SCSCE)可以编译和运行,您提供的代码片段没有给出问题的全貌。我提供的代码是您看到问题所需的全部。@string.username什么是输入以及它的值是如何定义的?是的,这是有意义的,但是我相信另一个问题是.contains,如果我将其更改为.equals工作正常,但我没有使用过。以前使用过contains,但不确定它是如何工作的,但它似乎比equals更有用。contains
允许您进行某种通配符选择(通配符元素是自动的)。如果字符串的任何部分
与输入匹配,则它将返回true,否则返回false。等于
要求整个字符串
与输入匹配
while((line = bufferedReader.readLine()) != null) {
String[] parts = line.split(" - ");
String subject = parts[0];
String question = parts[1];
String answer = parts[2];
//if(input.equals(question) && !subject.equals(currentSubject)){ currentSubject = subject; }
// if(input.equals(question) && subject.equals(currentSubject)){ Output.append(answer); }
if(input.contains("what is your name")) {
Output.append("my name is"+ newline);
}
}