2014-09-21 46 views
0
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"); 
    } 
} 

以上是我的代碼。Java需要我的詞典順序算法解釋

我沒有代碼本身的問題。

我只是想看看我試圖解決這個問題的這種方式是否屬實。

我想將三個用戶輸入字符串值排序爲字典順序

我想出了使用compareTo方法的解決方案,並將結果值存儲到整數變量中,然後使用絕對值來查找哪一個相鄰。

我還沒有編譯上面的代碼。

我唯一的問題是我的算法是否應該工作? 我想自己弄清算法,所以我不想要任何問題的首選解決方案,但只是解釋爲什麼它不應該工作或應該工作。

+1

1.編譯它。 2.試着運行它。 3.如果你不知道爲什麼它的行爲如此,請使用調試器。 – NPE 2014-09-21 06:06:09

回答

2

compareTo的唯一保證是關於結果的符號(0,> 0,< 0),而不是它的大小。因此,使用它「找到彼此相鄰的一個」是行不通的。

+0

我認爲compareTo生成字符串的Unicode值之間的差異。那麼我想我必須編譯它 – hs2345 2014-09-21 06:13:03