Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 append将输出重复四次_Java_String_Loops_Netbeans_Append - Fatal编程技术网

Java append将输出重复四次

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];

当我在输入文本字段中键入您的名字时,为什么会出现“我的名字是”4次

公共空比较(Q){

字符串文件名=目录+“memoryBank.txt”


如果没有运行示例,我相信您的问题就在这里

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);
    }
}