我的java学校工作需要一些帮助。昨天我发布了一个与Java SE array help needed please数组相关的问题非常相似,并设法在你们的帮助下解决了这个问题。
这一次,我需要提示用户输入一系列关于号码的单词,然后应用程序将确定最长的单词并打印到控制台,说明最长的单词以及长度。它
虽然,我们没有给出任何关于如何去做的提示,但我认为通过使用矢量可能是唯一的解决方案,但请告诉我,如果我错了。至于现在,我只设法打印到控制台,无论用户输入了多少单词,但我不知道如何能够将每个人添加到向量中并比较它们的长度。
再次感谢你,希望你们能够尝试理解我是编程的新手,所以尽量保持简单。 :d
import java.util.*;
class LongestWord2 {
public static void main(String [] args) {
System.out.println("Please enter your words");
Scanner userInput = new Scanner(System.in);
Vector <String> v = new Vector <String>();
while (userInput.hasNext()) {
v.add(userInput.next());
System.out.println(userInput.next());
System.out.println(v.get(0));
}
}
}
答案 0 :(得分:2)
这是最简单的方法。无需将单词存储在矢量中。
import java.util.*;
class LongestWord2 {
public static void main(String[] args) {
Scanner userInput = new Scanner(System.in);
String longestWord = "";
String temp = "";
int longestWordLength = 0;
int numOfWords = 10; // num of words to ask from user
System.out.println("Please enter " + numOfWords + " words");
for (int i = 0; i<numOfWords ; i++) { // loop for taking words as input
temp = userInput.next();
if(temp.length() > longestWordLength){
longestWordLength = temp.length();
longestWord = temp;
}
}
System.out.println("Longest Word = " + longestWord);
System.out.println("Longest Word Length = " + longestWordLength);
userInput.close();
}
}
示例输出:
Please enter 10 words
a
ab
abc
abcd
abcde
abcdef
abcdefg
abcdefgh
abcdefghi
abcdefghij
Longest Word = abcdefghij
Longest Word Length = 10
答案 1 :(得分:2)
如果您想继续从扫描仪获得响应并继续检查最长名称,那么您可以使用我在上一个问题中实现的那个并进行一些更改。
<强>样品:强>
System.out.println("Please enter your words");
Scanner userInput = new Scanner(System.in);
Vector<String> v = new Vector<String>();
String longest = "";
longest = userInput.nextLine(); //get the first array of words for checking
v.add(longest);
while (true) {
for(String s : v) //iterate to all the array of words
{
if(longest.length() < s.length()) //check if the last longest word is greater than the current workd
longest = s; //if the current word is longer then make it the longest word
}
System.out.println("Longest Word: " + longest + " lenght: " + longest.length());
v.add(userInput.nextLine());
}
答案 2 :(得分:1)
您的问题令人困惑,但我认为这是
while (userInput.hasNext())
{
v.add(userInput.next());
System.out.println(userInput.next());
System.out.println(v.get(0));
}
意图更像是,
while (userInput.hasNext())
{
String line = userInput.next();
line = (line != null) ? line.trim() : "";
v.add(line);
// System.out.println(userInput.next());
// System.out.println(v.get(0));
System.out.printf("'%s' is %d letters long%n", line, line.length());
}
根据你的问题,这应该足以让你开始。
答案 3 :(得分:0)
如果您只需要知道最长的单词,为什么不在变量中存储距离用户输入最远的单词?你不需要矢量。