import java.util.Scanner;
public class StringOrder
{
public static void main(String[] args)
{
String s1, s2, s3;
Scanner keyboard = new Keyboard(System.in);
System.out.println("Enter your first string.");
s1 = keyboard.next();
System.out.println("Enter your second string.");
s2 = keyboard.next();
System.out.println("Enter your third string.");
s3 = keyboard.next();
int c1 = abs(s1.compareTo(s2));
int c2 = abs(s2.compareTo(s3));
int c3 = abs(s1.compareTo(s3));
System.out.println(Math.min(c1,c2,c3)+" "+Math.median(c1,c2,c3)+" "+Math.max(c1,c2,c3));
System.out.println("lexicographical sorting finished");
}
}
以上是我的代码。
我对代码本身没有任何问题。
我只是想看看我试图解决这个问题的方式是否属实。
我正在尝试将三个用户输入字符串值排序为词典顺序。
我提出了使用compareTo
方法的解决方案,并将结果值存储到整数变量中,然后使用绝对值来查找彼此相邻的值。
我还没有编译上面的代码。
我唯一的问题是我的算法是否有效? 我试图自己弄清算法,所以我不想要任何解决问题的首选方案,而只是解释为什么它不应该起作用或应该起作用。
答案 0 :(得分:2)
compareTo
唯一的保证是关于结果的符号(0,> 0,< 0),而不是它的大小。因此,使用它“找到哪一个是彼此相邻的”是行不通的。