2017-11-18 64 views
0

我正在使用一些java代碼和android來根據單擊的複選框來獲取用戶的一些輸入。每個複選框都對應一週的天數,所以M,T,W,Th,F,S和Su都是可能的字符串值。如何獲得一週中的天數始終被排序的輸入M-Su

如果用戶按順序點擊M-Su,字符串將按順序出現爲「M,T,W,Th ...」等。但是,如果他以任何不同的順序點擊它們,就像你猜測它只是基於首先點擊什麼。我已經處理了刪除字符串值的邏輯,如果他們沒有勾選這個框,但是對於我應該如何建立一個M總是第一的系統,然後T,W和Su總是最後,我有點困惑。

用戶只能點擊「Su,M,F」作爲他們的選項,但我希望它在命令後顯示爲「M,F,Su」。

我在想也許使用一個hashmap來創建一個優先系統來爲字符串做一些比較,但是之前沒有這樣做,並想知道我應該如何去做這個最有效的方式?

謝謝!

回答

0

您可以使用將日期映射到數字的函數,然後可以對數字進行相應的排序。另一種方式做,這可能是通過使用含有字符串值,這是一天的縮寫,它是數字值,例如int值的枚舉:

public enum Days{ 

    Sunday("Su", 1), 
    Monday("M", 2); 

    String day; 
    int val; 

    Days(String day, int val) { 
     this.day = day; 
     this.val = val; 
    } 
} 

從這裏,然後你可以或許實現靜態函數從String或int獲取枚舉值。這樣,從用戶的給定輸入中,可以存儲關聯的int,並且當您想要獲取相應的String值時,可以使用實現的方法獲取關聯的String。

+0

你能舉出一個這樣的例子嗎?以前沒有使用過枚舉。謝謝! – ZarifS

相關問題