我似乎无法让我的程序打印出最短的单词

时间:2015-12-07 22:04:45

标签: java

好的,所以我的代码应打印出输入的单词总数,最长和最短的单词。我似乎无法弄清楚如何打印最短的单词,总的和最长的工作。

public void stringInput()
{
    Scanner keyboard = new Scanner(System.in);
    int wordcount =0;
    String word ="";
    String longest = "";
    String shortest = "";
    while(! word.equals("DONE"))
    {
        System.out.print("Please enter a word or DONE to exit: ");
        word = keyboard.next();
        if(!word.equals("DONE"))
        {
            wordcount ++;
            if (word.length() < shortest.length())
               {
                shortest = word;
               }
            if (word.length() > longest.length())
            {
                longest = word;
            }
        }
   }
    System.out.println("Thank you for entering "+wordcount+" words.");
    System.out.println("Longest word :"+ longest);
    System.out.println("Shortest word :"+ shortest);
} 

2 个答案:

答案 0 :(得分:3)

没有任何字短于"",因此shortest永远不会改变。一种解决方法是将shortest设置为第一个单词而不是""。另一种方法是更改​​if,以便在单词较短或shortest的长度仍为零时设置shortest

另一种可能性:

        if ((wordcount == 1) || (word.length() < shortest.length()))
        {
            shortest = word;
        }

答案 1 :(得分:0)

任何单词都不会短于空字符串。您应该将最短值设置为?- transpose([[a,b,c],[d,e,f]], Ts). Ts = [[a, d], [b, e], [c, f]]. 并检查它是否是第一个输入的字符串,如果是,则设置最短的字符串,然后将所有其他字符串与第一个字符串进行比较。 像这样:

null