Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 在方法中使用for循环检查字符串中的数组项-打印12行而不是一行_Java_Arrays_If Statement_For Loop_Methods - Fatal编程技术网

Java 在方法中使用for循环检查字符串中的数组项-打印12行而不是一行

Java 在方法中使用for循环检查字符串中的数组项-打印12行而不是一行,java,arrays,if-statement,for-loop,methods,Java,Arrays,If Statement,For Loop,Methods,Java新手,请对我放松点 创建一个简单的教育应用程序来检查论文句子中的人称代词。我的问题是这个方法打印了12次(而不是检查12个代词并打印一行) publicstaticvoid代词(字符串主题){ String[]人称代词={“我”、“我”、“你”、“我们”、“我们”、“我们”、“他”、“他”、“她”、“她”、“他们”、“他们”}; 对于(int i=0;i

Java新手,请对我放松点

创建一个简单的教育应用程序来检查论文句子中的人称代词。我的问题是这个方法打印了12次(而不是检查12个代词并打印一行)

publicstaticvoid代词(字符串主题){
String[]人称代词={“我”、“我”、“你”、“我们”、“我们”、“我们”、“他”、“他”、“她”、“她”、“他们”、“他们”};
对于(int i=0;i<12;i++){
if(论文包含(人称代词[i])){
System.out.println(“哦!看起来你的论文包含人称代词。记住,在有说服力的文章中避免使用我、你、我、我们、我们等等。”);
}否则{
System.out.println(“看起来不错。现在是开始写作的时候了!你的论文大纲被保存到一个名为EssayTutorOutline的txt文件中。”);
}
}
}
如果我输入“我有论文”,它将返回以下内容:

看起来不错

看起来不错

看起来不错

看起来不错

看起来不错

看起来不错

哎呀

看起来不错

看起来不错

看起来不错

看起来不错

看起来不错


我相信这对你们大多数人来说是显而易见的。整个晚上都在谷歌上搜索答案。感谢您的帮助

你有一个循环;内部有一个if语句,如果测试为真,则打印一个内容;如果测试为假,则打印另一个内容。为什么你不期望12行输出


如果您的目的是查看12个代词,并在最后报告是否使用了其中任何一个,则必须等待打印,直到循环完成。我建议使用一个初始化为“none was found”的变量,如果您找到了,则将其设置为“one was found”(此时,您可以停止循环,但不需要太多)。然后在循环之后添加if语句,检查该变量。

您有一个循环;内部有一个if语句,如果测试为真,则打印一个内容;如果测试为假,则打印另一个内容。为什么你不期望12行输出


如果您的目的是查看12个代词,并在最后报告是否使用了其中任何一个,则必须等待打印,直到循环完成。我建议使用一个初始化为“none was found”的变量,如果您找到了,则将其设置为“one was found”(此时,您可以停止循环,但不需要太多)。然后在循环之后添加if语句,检查该变量。

您有一个循环;内部有一个if语句,如果测试为真,则打印一个内容;如果测试为假,则打印另一个内容。为什么你不期望12行输出


如果您的目的是查看12个代词,并在最后报告是否使用了其中任何一个,则必须等待打印,直到循环完成。我建议使用一个初始化为“none was found”的变量,如果您找到了,则将其设置为“one was found”(此时,您可以停止循环,但不需要太多)。然后在循环之后添加if语句,检查该变量。

您有一个循环;内部有一个if语句,如果测试为真,则打印一个内容;如果测试为假,则打印另一个内容。为什么你不期望12行输出


如果您的目的是查看12个代词,并在最后报告是否使用了其中任何一个,则必须等待打印,直到循环完成。我建议使用一个初始化为“none was found”的变量,如果您找到了,则将其设置为“one was found”(此时,您可以停止循环,但不需要太多)。然后在循环之后添加if语句,检查该变量。

仔细检查代码,一边解释,就会看到问题所在

// repeat for each number from 0 to 11
for (int i = 0; i < 12; i++) {
    // if this string contains the string in personalPronouns[i]
    if (thesis.contains(personalPronouns[i])){
        // print this message
        System.out.println("Oops! Looks like your thesis contains personal pronouns. Remember, avoid using I, you, me, we, us, our, etc. in persuasive essays.");
    } else { // otherwise
        // print this message
        System.out.println("Looks good. Now it's time to start writing! Your essay outline is saved to a txt file called EssayTutorOutline.");
    }
}
请注意,虽然使用标志是一般问题的一般解决方案,但由于许多原因,它仍然不能满足您的需要。特别是,
contains
方法匹配一个子字符串,因此您将得到许多误报,例如大写字母I、单词welcome和delicious等等。您也不会匹配任何大小写不同的人称代词

更可靠的方法是将
论文
拆分为空白,从每个结果单词中去掉标点,将它们全部添加到A,然后查看
集合是否包含你的任何代词。如果您使用
TreeSet
,您可以告诉集合忽略案例,并将
“我们”
“我们”
视为相同:

Set<String> wordList = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
wordList.add("we");
wordList.contains("We"); // true
Set wordList=new TreeSet(String.CASE不区分大小写\u顺序);
添加(“我们”);
wordList.contains(“我们”);//真的

最后,看一看;它使对数组或集合的迭代更干净,更不容易出错。如果确实需要手动迭代,请始终使用
personaldenomes.length
而不是硬编码数字
12

浏览代码,一边解释,你就会看到问题所在

// repeat for each number from 0 to 11
for (int i = 0; i < 12; i++) {
    // if this string contains the string in personalPronouns[i]
    if (thesis.contains(personalPronouns[i])){
        // print this message
        System.out.println("Oops! Looks like your thesis contains personal pronouns. Remember, avoid using I, you, me, we, us, our, etc. in persuasive essays.");
    } else { // otherwise
        // print this message
        System.out.println("Looks good. Now it's time to start writing! Your essay outline is saved to a txt file called EssayTutorOutline.");
    }
}
请注意,虽然使用标志是一般问题的一般解决方案,但由于许多原因,它仍然不能满足您的需要。特别是,
contains
方法匹配一个子字符串,因此您将得到许多误报,例如大写字母I、单词welcome和delicious等等。您也不会匹配任何大小写不同的人称代词

更可靠的方法是将
论文
拆分为空白,从每个结果单词中去掉标点,将它们全部添加到A,然后查看
集合是否包含你的任何代词。如果您使用
TreeSet
,您可以告诉集合忽略案例,并将
“我们”
“我们”
视为相同:

Set<String> wordList = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
wordList.add("we");
wordList.contains("We"); // true
Set wordList=新树集