【发布时间】:2021-02-14 08:41:31
【问题描述】:
我的任务是将输出句子中最长单词的程序拆分为同一类中的多个方法。我不断尝试不同的方法,但似乎都没有奏效。有人可以帮我吗? 这是程序:
import java.util.Scanner;
public class Test{
public static str getUserInput(Scanner sc) {
System.out.print("Enter a string or sentence: ");
// Return the string inputted by the user
return sc.nextLine();
return str;
}
public static void getlongestWord(str) {
Scanner str2 = new Scanner(str);
//Initialise longestWord with the first word in str
String longestWord = str2.next();
//Initiaise maxlen with length of first word in str
int maxlen = longestWord.length();
while(str2.hasNext()) //This loop will keep running till words are present
{
String word = str2.next(); //Storing next word in variable
int len = word.length(); //Storing word's length
if(len>maxlen) //If this length is more than maxlen, longestWord and maxlen are changed
{
longestWord = word;
maxlen = len;
}
}
return longestWord;
return maxlen;
}
int longestWord;
int maxlen;
public static void getOutput (int longestWord) {
System.out.println("The longest word is '" + longestWord );
}
public static void getOuput2 (int maxlen){
System.out.println ("of length "+maxlen+" characters.");
}
}
【问题讨论】:
-
return longestWord; return maxlen;如果您已经返回了最长的单词,那么尝试返回单词长度有什么意义?每个字符串都知道它的长度,所以当你返回一个字符串时,客户端也可以通过str.length()方法读取它的长度。 -
顺便说一句,如果您希望方法返回任何您需要在方法声明中指定的内容。现在你的
getlongestWord声明为void返回类型而不是String。它还需要为其参数指定类型,所以getlongestWord(str)应该是getlongestWord(String str) -
似乎没有任何效果。你这是什么意思?有例外吗?是不是输出了不正确的数据?