我正在使用一些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为字符串创建一个优先级系统来进行一些比较,但之前没有这样做,并且想知道我应该如何以最有效的方式进行此操作?
谢谢!
答案 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。