展开全部
思路:直接用Integer类的bit运算操作62616964757a686964616fe78988e69d8331333365643565。
如果想得到一个n位数的第k位,写法如下:
(n & ( 1 k )) k
内部实现就是:
1、创建一个mask,把1左移k位
int mask = 1 k;
2、然后把n右移mask位就是想要得到的结果
int masked_n = n & mask;
int thebit = masked_n k。
class Tester{
public static void main (String[] args) {
String str = "2013年6月12日,XXXXXXXXXXXXX";
String reg = "([^,,]+)[,,].*$";
String r = str.replaceAll(reg, "$1");
reg = "^((\\d+)年)?((\\d+)月)?((\\d+)日)?$";
String sy = r.replaceAll(reg,"$2");
String sm = r.replaceAll(reg,"$4");
String sd = r.replaceAll(reg,"$6");
int y, m, d;
try {
y = Integer.parseInt(sy);
} catch(Exception e) {
y = 0;
}
try {
m = Integer.parseInt(sm);
} catch(Exception e) {
m = 0;
}
try {
d = Integer.parseInt(sd);
} catch(Exception e) {
d = 0;
}
System.out.format("%d, %d, %d", y, m, d);
}
}