[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);
}
我正在尝试创建一个使用 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);
}