2014-08-31 4 views
0

Я пытаюсь сравнить 3 разностных слова, а затем заказать их, однако я не получаю правильный ответ. Некоторое направление будет большой помощью! Очень новый для Java и слишком долго застрял в этой проблеме.Сравнение нескольких строк и ответов на вопросы

До сих пор я использую это:

`// word1, word2, and word3 
    /* If word1 is greater than word2, 
    * and word2 IS greater than word3 and word3 is NOT greater then word1: display word1,  word2, word3 
    */ 
    result1 = word1.compareTo(word2); 
    result1a = word1.compareTo(word3); 
    result1b = word2.compareTo(word3); 

//display and compare information 
     if (result1 > result1a + result1b) 
     JOptionPane.showMessageDialog(null, word1 + word2 + word3); 

     else if (result1 < result1a + result1b) 
     JOptionPane.showMessageDialog(null, word2 + word3 + word1); 

`

+1

сравнение в смысле какой? длина? –

+1

Вы говорите о 'длина строки 'или говорите о« лексикографическом приоритете », когда вы имеете в виду словоx, больше, чем слово? –

+0

Извините, я хочу, чтобы сообщение показывало слова в порядке возрастания. –

ответ

1
String message; 
if(word2.compareTo(word1) < 0) { //word2 < word1 
    if(word3.compareTo(word1) < 0) { //word3 < word1 
     if(word3.compareTo(word2) < 0) { //word3 < word2 
      message = word3 + word2 + word1; 
     } else { //word2 <= word3 
      message = word2 + word3 + word1; 
     } 
    } else { //word1 <= word3 
     message = word2 + word1 + word3; 
    } 
} else { //word1 <= word2 
    if(word3.compareTo(word2) < 0) { //word3 < word2 
     if(word3.compareTo(word1) < 0) { //word3 < word1 
      message = word3 + word1 + word2; 
     } else { //word1 <= word3 
      message = word1 + word3 + word2; 
     } 
    } else { //word2 <= word3 
     message = word1 + word2 + word3; 
    } 
} 

Это использует лексикографический/алфавитный порядок. Если вы хотите сравнить слова по их длине, вы должны заменить каждый s1.compareTo(s2) на s1.length() - s2.length() (у вас должно быть положительное целое число, если s1 больше s2).

+0

Спасибо, пытаясь это сейчас. –

+0

Работал лечения. Спасибо. Ясно, что я был вне поля, спасибо снова –

1
ArrayList<String> list = new ArrayList<String>(); //create an arraylist 

list.add("ccc") //add the strings 
list.add("aaa"); 
list.add("bbb"); 

Collections.sort(list); //this will sort the list in lexographical precedence 

//now get the words and process as you want 
+0

На самом деле, он пытается это сделать, используя метод compareTo()! Итак, я думаю, ваш ответ ему не поможет! –