计算checbox选中值

来源:互联网 发布:word朗读软件 编辑:程序博客网 时间:2024/06/04 01:27

这个简直是天才型的人物写出来的东西

public static String toStrFlag(Long v) {

String result = "";
if (v == null) {
return result;
}


if (v > 0x7FFF) {
throw new IllegalArgumentException("flag值错误,flag必须(0 <= flag <= 0x7FFF)");
}


List<String> list = new ArrayList<String>();
for (int i = 0; i < 15; i++) {
long f = 1;
f = f << i;
f = f & v.longValue();
if (f > 0) {
list.add(String.valueOf(i + 1));
}
}
return Joiner.on(",").join(list);
}


public static long toLongFlag(String flag) {
long result = 0L;
if (StringUtils.isBlank(flag)) {
return result;
}
String[] flags = flag.split("\\,");
for (String e : flags) {
if (StringUtils.isNotBlank(e)) {
e = e.trim();
int item = Integer.parseInt(e);
if (item < 1 || item > 15) {
throw new IllegalArgumentException("flag元素错误,flag元素必须位于1-15之间(flag=" + flag + ")");
}
int n = 1;
n = n << (item - 1);
result = result | n;
}
}
return result;
}
0 0
原创粉丝点击