如何获得一周中几天的输入,以便始终对M-Su进行排序

时间:2017-11-18 04:31:38

标签: java android string

我正在使用一些java代码和android来根据点击的复选框从用户那里获得一些输入。这些复选框中的每一个都对应于一周中的几天,因此M,T,W,Th,F,S和Su都是可能的字符串值。

如果用户按顺序点击M-Su,则该字符串将按顺序显示为“M,T,W,Th ......”等。但是,如果他以任何不同的顺序点击它们,那么你可以猜测它只是根据首先点击的内容来设置它。我已经处理了删除字符串值的逻辑,如果他们取消选中该框,但我对如何建立一个M总是第一个,然后是T,而W和Su总是最后的系统有点困惑。

用户只能点击“Su,M,F”作为选项,但我希望它在订购后显示为“M,F,Su”。

我在考虑使用hashmap为字符串创建一个优先级系统来进行一些比较,但之前没有这样做,并且想知道我应该如何以最有效的方式进行此操作?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用将日期映射到数字的函数,然后可以相应地对其进行排序。另一种方法可能是使用包含String值的枚举,该值是day的缩写,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。