我试图编写一个代码来接收一组单词,并返回字符长度中最小的单词。很简单,出于某种原因,当那里有一个较短的单词(例如“不”)时,它会返回“再见”。

public class function2 {

    public static void main(String [] args) {
        String [] SA = {"hello", "goodbye", "jack", "bye", "yes", "no", "yoo"};
        smallest(SA);
        System.out.println("The shortest word is " + smallest(SA));
    }

    public static String smallest(String SA[]) {
        String first = SA[0];
        for (int i = 1 ; i < SA.length ; i++) {
            if ((SA[i].compareTo(first)) < 0) {
                first = SA[i];
            } // if
        } // for
        return first;
    }// smallest
}// lab1b

最佳答案

compareTo 不比较字符串的长度,而是比较它们的字母顺序。

您应该将条件更改为 if (SA[i].length()<first.length())

关于java - 在字符串数组中找到最短的单词java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25829866/

10-11 19:00