2012-03-24 118 views
0

所以我們有這個問題,我們試圖弄清楚。下面問題是什麼問題。 萊斯特列出了他想要打印的單詞,而不是按照通常的字母順序排列,但不是以隨機順序排列。他決定採用一種方法對他稱之爲AlphaFun訂單的單詞進行排序。 AlphaFun訂單方法使用以下步驟對單詞進行排序 1.首先比較單詞 的第二個字母2.然後比較單詞的第4個字母(第4個字母將被認爲是包含小於4個字母)。 3.比較單詞的最後一個字母(最後一個字母將始終是單詞的最後一個字母,而不是空格)。 4.最後比較單詞中的第一個字母。 5.如果以上所有內容都是相同的字符,則用於這些字母的單詞將按字母順序排序。使用AlphaFun進行分類

注意這些例子 單詞:

EGG

EGGS

BREAD

ALPHAFUN:

ģSE

GSSE

RADB

輸入 輸入文件包含和線的未知數,其中inputer的每一行包含一個字由3至10個字母。 輸出 您將打印在阿爾法樂趣順序的話

例如輸入文件: BREAD 鷹巢 BROAD 雞蛋 EGG 錢包

例如輸出到屏幕 錢包 鷹巢 EGG 雞蛋 BREAD BROAD

我們該怎麼做這個p roblem?我們一直堅持了2個小時。

回答

1

如何我們可以做這個問題嗎?我們一直堅持了2個小時。

Java實際上很容易實現。您只需在課程中實施Comparator<String>,例如

public class AlphaFunComparator implements Comparator<String> { 
    public int compare(String o1, String o2) { 
     // Implement rules described in the question 
    } 
} 

然後你只需要將文件加載到一個列表,並調用:

Collections.sort(list, new AlphaFunComparator()); 

打印出來的清單,你就大功告成了。

+0

package alphafun; import java.io. *; import java.util。*; 公共類AlphaFun { 公共靜態無效的主要(字串[] args)拋出IOException異常 { 掃描器S =新的掃描儀(新文件(「C:/ Documents和設置/管理/我的文檔/的NetBeansProjects/AlphaFun/alphafun。 DAT「)); String trim = s.next()。trim(); s.nextLine(); String trim1 = s.next()。trim(); trim [1] } } 這就是我們的,我們是否需要重做它? – 2012-03-24 21:38:03

+0

你能舉例,因爲我們從來沒有在我們班上班? – 2012-03-24 21:40:19

+1

@AbrahamAndujo:如果我再給你,它基本上會爲你做功課。我已經告訴你如何處理它,包括最不明顯的位的骨架。你應該可以自己完成休息 - 如果你不能,那麼你可能最好與老師討論這個問題,他們可以坐下來找出你沒有的課程。瞭解。 – 2012-03-24 21:42:27

1

在比較器類中實現你的排序邏輯,然後收集你的字符串成某種(ArrayList中)的名單,最後用Collections.sort(ArrayList中,myComparator):

Collections.sort(List, Comparator)