自定义编码器和解码器

为了演示目的,我们将创建一个非常基本的编码器和解码器,它使用简单的凯撒密码(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);

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容