如何获得一周中的天数始终被排序的输入M-Su

问题描述:

我正在使用一些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来创建一个优先系统来为字符串做一些比较,但是之前没有这样做,并想知道我应该如何去做这个最有效的方式?

谢谢!

您可以使用将日期映射到数字的函数,然后可以对数字进行相应的排序。另一种方式做,这可能是通过使用含有字符串值,这是一天的缩写,它是数字值,例如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