为了演示目的,我们将创建一个非常基本的编码器和解码器,它使用简单的凯撒密码(Caesar Cipher)算法,这是一种替换加密技术,其中每个字母被替换为字母表中固定数目位置之后的那个字母。
下面是一个简单的Java类,它包含了编码和解码方法:
public class SimpleEncoderDecoder {
// 凯撒密码的移位值
private static final int SHIFT = 3;
// 编码方法
public static String encode(String input) {
StringBuilder encoded = new StringBuilder();
for (char c : input.toCharArray()) {
if (Character.isLetter(c)) {
char base = Character.isLowerCase(c) ? 'a' : 'A';
char encodedChar = (char) (((c - base + SHIFT) % 26) + base);
encoded.append(encodedChar);
} else {
encoded.append(c); // 非字母字符不变
}
}
return encoded.toString();
}
// 解码方法
public static String decode(String input) {
StringBuilder decoded = new StringBuilder();
for (char c : input.toCharArray()) {
if (Character.isLetter(c)) {
char base = Character.isLowerCase(c) ? 'a' : 'A';
char decodedChar = (char) (((c - base - SHIFT + 26) % 26) + base);
decoded.append(decodedChar);
} else {
decoded.append(c); // 非字母字符不变
}
}
return decoded.toString();
}
// 主方法,用于测试编码器和解码器
public static void main(String[] args) {
String original = "Hello, World!";
String encoded = encode(original);
String decoded = decode(encoded);
System.out.println("Original: " + original);
System.out.println("Encoded: " + encoded);
System.out.println("Decoded: " + decoded);
}
}