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
Java 多个字符串输入,带退出循环…不带数组_Java_String - Fatal编程技术网

Java 多个字符串输入,带退出循环…不带数组

Java 多个字符串输入,带退出循环…不带数组,java,string,Java,String,所以我更新了我的代码,但它做了一件非常奇怪的事情。当输入两个输入时,它返回最长和最短的变量以及其余变量。但是,当输入两个以上的字符串时,它会返回最长的…很好…但对于最短的字符串,它只返回比最长的单词,而不是输入的最短字符串…发生了什么:( import java.util.Scanner; 公开课堂报告 { 公共静态void main(字符串[]args) { 扫描仪输入=新扫描仪(系统输入); 字串=”; 字串=”; 字符串结果=”; 整数计数=0; int=1; int最长=1; int s

所以我更新了我的代码,但它做了一件非常奇怪的事情。当输入两个输入时,它返回最长和最短的变量以及其余变量。但是,当输入两个以上的字符串时,它会返回最长的…很好…但对于最短的字符串,它只返回比最长的单词,而不是输入的最短字符串…发生了什么:(

import java.util.Scanner;
公开课堂报告
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(系统输入);
字串=”;
字串=”;
字符串结果=”;
整数计数=0;
int=1;
int最长=1;
int sumof长度=0;
双平均长度=0;
字符串最短单词=”;
字符串最长的单词=”;
而(!word.equals(“x”))
{
计数++;
System.out.println(“请输入字符串”+count+”,输入x
退出:”;
word=in.nextLine();
单词+=“字符串”+计数+”:“+word+”\n”;
SumofLength+=单词长度();
if(word.length()>最长)
{
最长=单词长度();
最长的单词=单词;
}   
else if(word.length()>最短和&word.length()<最长)
{
最短=单词长度();
最短的单词=单词;
}   
}
平均长度=(总长度-1)/(计数-1);
System.out.println(“输入的最短字符串:
“+最短单词+”,长度为“+最短”;
System.out.println(“输入的最长字符串:”
+最长单词+”,长度为:“+最长”;
System.out.println(“所有长度之和:”+
(SumofLength-1);
System.out.println(“字符串数:”+count);
System.out.println(“平均字符串长度:”+averageLength);

这听起来像是一个学校练习,因此我将尝试帮助您,但不明确给出答案

您只需要一个循环,不应该在输入所有单词后再次循环所有单词。输入“x”后,要打印的结果应该已经计算过了(或者需要最少的处理,如计算平均值)。您可以在最后打印多个值,无需将其全部放入一个字符串中


如果你需要更多的帮助,尽管问吧!

这听起来像是学校的练习,所以我会尽力帮助你,而不是简单地给出答案

您只需要一个循环,不应该在输入所有单词后再次循环所有单词。输入“x”后,要打印的结果应该已经计算过了(或者需要最少的处理,如计算平均值)。您可以在最后打印多个值,无需将其全部放入一个字符串中


如果您需要更多帮助,请随时询问!

您需要有一个变量max,对于输入的每个单词,检查它是否大于max,然后将max更改为新单词 min也是一样(不要忘记检查min是否仍然是“”,然后将其更改为第一个单词),您还需要一个计数器来计算所有输入单词的长度,以及一个计数器来计算已输入单词的数量,以计算最终的平均单词长度 并将其输出为字符串1:hey字符串2:hello world等。。 你需要这样做

Words  += "String " + counter + ": " + word + "\n";

您需要有一个变量max,对于输入的每个单词,检查它是否大于max,然后将max更改为新单词 min也是一样(不要忘记检查min是否仍然是“”,然后将其更改为第一个单词),您还需要一个计数器来计算所有输入单词的长度,以及一个计数器来计算已输入单词的数量,以计算最终的平均单词长度 并将其输出为字符串1:hey字符串2:hello world等。。 你需要这样做

Words  += "String " + counter + ": " + word + "\n";
else if(word.length()>shortest&&word.length()
它应该是word.length()
else if(word.length()>shortest&&word.length()
它应该是word.length()另外,这不应该出现在else中,因为用户可能只输入一个单词,而这一个单词同时是最短和最长的

提示:您根本不需要存储单词。在逐个读取单词时进行处理。在循环之前创建一些变量,并在读取单词时更新它们。例如:
String longestWord,shortestWord;int totalLength,wordCount;
但您甚至没有尝试对给定的输入做任何事情,在我看来,您很容易放弃了,现在希望我们为您做功课。提示:您根本不需要存储单词。在逐个读单词的同时进行处理。在循环之前创建一些变量,并将它们更新为y例如:
String longestWord,shorteword;int totalength,wordCount;
但是你甚至没有尝试对给定的输入做任何事情,在我看来你已经放弃了
else if(word.length()> shortest && word.length() < longest)
            {
                shortest = word.length();
                shortestWord = word;
            }