【问题标题】:Java SE vector array help please [closed]Java SE向量数组请帮助[关闭]
【发布时间】:2014-06-26 07:59:19
【问题描述】:

我需要一些帮助来完成我的 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));
        }   
    }
}

【问题讨论】:

  • Vector 已过时 - 您应该改用 ArrayList。

标签: java arrays vector


【解决方案1】:

如果您想继续从您的扫描仪获得响应并继续检查最长的名称,那么您可以使用我在您的最后一个问题中实现的名称并进行一些更改。

样本:

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());
    }

【讨论】:

  • 嘿,谢谢罗德!但是,编译给我留下了.... 请输入您的单词 一二三四千 最长单词:1 长度:3 最长单词:1 长度:3 最长单词:3 长度:5 最长单词:3 长度:5 最长单词:千长度:8
  • @alan_ogz83 以上更新见编辑
  • :) 它实际上计算了所有单词的总长度 lol。
  • 有什么方法可以计算单个代币吗?谢谢!
  • @alan_ogz83 你想置换所有数据??
【解决方案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

【讨论】:

  • 嗨,谢谢你帮我解决这个问题,但我试过了,在输入单词后它不起作用。 :)
  • 你是如何测试它的?我测试了代码并提供了输出。
  • 这段代码是为十个单词编写的,即它要求用户输入 10 个单词。您可以将变量 numOfWords 的值更改为您想要的值。
【解决方案3】:

您的问题令人困惑,但我认为这是

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());
}

根据您的问题,这应该足以让您入门。

【讨论】:

    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-02
      • 2014-10-08
      • 2014-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多