[Java] Изо всех сил, чтобы положить строку в алфавитном порядке - PullRequest
1 голос
/ 03 мая 2020

Я пытаюсь создать метод void, который использует 3 строковых параметра и размещает строки в алфавитном порядке. До сих пор я использовал операторы if, и я считаю, что операторы if верны, однако я продолжаю получать сообщение, в котором «void не может быть преобразован в строку». Я полагаю, что я использую метод 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);
    }
}

Ответы [ 2 ]

2 голосов
/ 03 мая 2020

Измените ваш основной метод следующим образом:

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

Ваша функция возвращает «void», что означает «ничего», поэтому вы не можете присвоить ее переменной или распечатать.

Лучший способ сделать это - почти наверняка заставить ваш метод возвращать String[], но если ваше задание должно возвращать void, то это лучшее, что у вас есть.

1 голос
/ 03 мая 2020

в дополнение к ответу JoshuaD, я предлагаю вам использовать более удобный способ сортировки, используя Stream API .

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