Java SE矢量数组请帮忙

时间:2014-06-26 07:59:20

标签: java arrays vector

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

4 个答案:

答案 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)

如果您只需要知道最长的单词,为什么不在变量中存储距离用户输入最远的单词​​?你不需要矢量。