public static void main(String[] args) {
int jiami = jiami(123402);
//
System.out.println(jiemi(jiami));
}
public static int jiami(int data) {
if (data > 9999999) { // 大于8位数抛异常
throw new RuntimeException();
}
StringBuffer sb = new StringBuffer();
sb.append(data);
// 交换
sb.reverse();
for (int i = 0; i < sb.length(); i++) {
int temp = Character.getNumericValue(sb.charAt(i));
// 前数加上5之后%10
temp = (temp + 5) % 10;
// 将原来的树删掉然后插入
sb.delete(i, i + 1);
sb.insert(i, temp);
}
// 最后将第一位和最后一位数字交换。 //这个放前面后面没影响吧
char temp = sb.charAt(0);
sb.setCharAt(0, sb.charAt(sb.length() - 1));
sb.setCharAt(sb.length() - 1, temp);
return Integer.parseInt(sb.toString());
}
public static int jiemi(int data) {// 解密
if (data > 9999999) { // 大于8位数抛异常
throw new RuntimeException();
}
StringBuffer sb = new StringBuffer();
sb.append(data);
// 将第一位和最后一位数字交换。
char temp = sb.charAt(0);
sb.setCharAt(0, sb.charAt(sb.length() - 1));
sb.setCharAt(sb.length() - 1, temp);
for (int i = 0; i < sb.length(); i++) {
int t = Character.getNumericValue(sb.charAt(i));
// 前数加上5之后%10
t = Math.abs((t - 5)) % 10;
// 将原来的树删掉然后插入
sb.delete(i, i + 1);
sb.insert(i, t);
}
sb.reverse();
return Integer.parseInt(sb.toString());
}
晕了//等明天有空在试试其他的方法. |