写一个简单的算法对内容进行加密和解密.求一简单,完整的解题答案,特别是decode()方法的实现。

来源:百度知道 编辑:UC知道 时间:2024/06/03 09:27:02
写一个简单的算法对内容进行加密和解密:定义encode()和decode()方法,encode()用来按一定的规则转换字符串,decode()方法把encode()方法转换的字符串在转换回来,encode()规则如下:
1.如果当前字符是数字且不大于0,复制当前字符;
2.如果当前字符是数字且大于0,如果当前字符有后继字符,则设置整数N等于当前字符数值,把后继字符复制N+1次;
3.如果当前字符既不是数字也不是"_",则复制当前字符;
4.如果当前字符是"_",则替换为"\UL";
5.上面每次操作完毕,在后面追加一个"_";
例:有字符串"23_2b/5",则转换后为:"333______\UL_bbb_b_/_5"
再写decode()方法,把转换后的字符串再转换回去

验证字符串:
字符串 转换后字符串
\_b2_U2ab__ \_\UL_b____\UL_\U_aaa_a_b_\UL_\UL
要求结构清晰,可读性强。

没有加注释。好好看看吧。
能实现功能!

public class Test {

public static void main(String[] args) {

String encodeItem = "\\_b2_U2ab__";
String decodeItem = encode(encodeItem);
System.out.println(encodeItem);
System.out.println(decodeItem);
System.out.println(decode(decodeItem));
}

public static String encode(String encodeItem) {

if (encodeItem == null || encodeItem.length() == 0) {
return null;
}

StringBuilder result = new StringBuilder();

for (int i = 0; i < encodeItem.length(); i++) {

char code = encodeItem.charAt(i);

if (Character.isDigit(code)) {

int codeValue = Character.digit(code, 10);

if (codeValue <= 0) {
result.append(code);