[Java]难以按字母顺序排列字符串

[Java]Struggling to put string in alphabetical order

我正在尝试创建一个使用 3 个字符串参数并按字母顺序排列字符串的 void 方法。到目前为止,我已经使用了 if 语句并且我相信 if 语句是正确的但是我不断收到一条消息说 "void cannot be converted into string" 我想使用 void 方法,但我很困惑这是我的代码

public class AlphabeticalOrder {

    public static void inOrder(String s1, String s2, String s3) {
        if (s1.compareTo(s2) < 0 && s1.compareTo(s3) < 0)
            if (s2.compareTo(s3) < 0)
                System.out.println(s1 + s2 + s3);
            else
                System.out.println(s1 + s2 + s3);
        else if (s2.compareTo(s1) < 0 && s2.compareTo(s3) < 0)
            if (s1.compareTo(s3) < 0)
                System.out.println(s2 + s1 + s3);
            else
                System.out.println(s2 + s3 + s1);
        else if (s3.compareTo(s1) < 0 && s3.compareTo(s2) < 0)
            if (s2.compareTo(s1) < 0)
                System.out.println(s3 + s2 + s1);
            else
                System.out.println(s3 + s1 + s2);
    }

    public static void main(String[] args) {
        String ans1 = inOrder("abc", "mno", "xyz");
        System.out.println(ans1);
    }
}

将您的主要方法更改为:

public static void main(String[] args)
{
    inOrder("abc", "mno", "xyz");
}

你的函数returns "void",意思是"nothing",所以你不能把它赋值给一个变量,也不能打印它。

更好的方法几乎肯定是让你的方法 return 成为 String[],但如果你的任务是 return void,那么这是最好的你有。

除了 JoshuaD 的回答,我建议你使用更方便的方法来排序 Stream API

private static void inOrder(String s1, String s2, String s3) {
    Stream.of(s1, s2, s3).sorted().forEach(System.out::println);
}