需要Java SE数组帮助

时间:2014-06-25 06:16:04

标签: java arrays string

我的java学校工作需要一些帮助。 我们被告知提示用户输入五个单词并从那里确定它们中最长的单词并打印以控制最长的单词以及其中的字符数。

现在,我只能通过显示最长的字符数来使用数组对它们进行排序,但我不确定如何显示单词本身。有人可以请帮助我,请记住我是一个完整的编程新手,我的进步仍然只是基本的,所以尽量让它对我来说不太复杂。另外,我可以随意查明那些冗余代码,因为我知道我有很多代码。 :)谢谢!

    import java.util.Scanner;
    import java.util.Arrays;

    class LongestWord
    {
public static void main(String [] args)
{       
    Scanner theInput = new Scanner(System.in);
    System.out.println("Please enter your five words");

    String fWord = theInput.next();
    String sWord = theInput.next();
    String tWord = theInput.next();
    String fhWord = theInput.next();
    String ffWord = theInput.next();

    System.out.println(fWord + sWord + tWord + fhWord + ffWord);

    int [] wordCount = new int[5];

    wordCount[0] = fWord.length();
    wordCount[1] = sWord.length();
    wordCount[2] = tWord.length();
    wordCount[3] = fhWord.length();
    wordCount[4] = ffWord.length();

    Arrays.sort(wordCount);

    System.out.println(wordCount[4]);


}
    }

3 个答案:

答案 0 :(得分:3)

您需要将所有字符串添加到数组并迭代所有字符串。

<强>样品:

    String [] wordCount = new String[5];

    wordCount[0] = fWord;
    wordCount[1] = sWord;
    wordCount[2] = tWord;
    wordCount[3] = fhWord;
    wordCount[4] = ffWord;

    String longest = "";

    longest = wordCount[0]; //get the first array of words for checking

    for(String s : wordCount) //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());

<强>结果:

Please enter your five words
12345
1234
123
12
1
123451234123121
Longest Word: 12345 lenght: 5

答案 1 :(得分:2)

您需要将所有单词存储到数组中,并根据其长度排序后获取最大值。

 String[] words = ....//Store all words into this array.

 Arrays.sort(words, new Comparator<String>() {

         @Override
         public int compare(String o1, String o2) {
             return o2.length() - o1.length();
         }
     });

 System.out.println(words[0]);

或者,如果你使用java-8比你更容易得到结果,

String longWord=
       Arrays.stream(words).max((o1, o2)->o1.length()-o2.length()).get();

答案 2 :(得分:0)

不应将长度放入数组中,而应将所有单词放在数组中,然后使用for / while循环它们,并检查每个字符串的长度,与前一个字符串相比,以记录最大长度字符串。

或者另一种方法可能是使用循环读取字符串,您可以执行相同的逻辑来比较长度而不使用其他数组。