【问题标题】:[Java]Struggling to put string in alphabetical order[Java]努力按字母顺序排列字符串
【发布时间】:2020-08-17 13:14:32
【问题描述】:

我正在尝试创建一个使用 3 个字符串参数并将字符串按字母顺序排列的 void 方法。到目前为止,我已经使用了 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);
    }
}

【问题讨论】:

  • 我正在尝试将字符串打印为 abcmnoxyz 但代码不会运行
  • 您的 inOrder 方法是 void - 它会打印自身内部的所有内容 - 因此它无法在 main 方法中向 ans1 返回任何内容。

标签: java string void


【解决方案1】:

把你的主要方法改成这样:

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

您的函数返回“void”,表示“无”,因此您不能将它分配给变量或打印它。

执行此操作的更好方法几乎可以肯定是让您的方法返回String[],但如果您的任务是返回void,那么这是您所拥有的最好的方法。

【讨论】:

  • @Rengoku 还记得如果答案解决了您的问题,您需要做什么吗?
【解决方案2】:

除了 JoshuaD 的回答之外,我建议您使用更方便的方式使用Stream API 对其进行排序。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多