Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将多个Ascii数字更改为字符_Java_Encryption_Ascii - Fatal编程技术网

Java 将多个Ascii数字更改为字符

Java 将多个Ascii数字更改为字符,java,encryption,ascii,Java,Encryption,Ascii,我一直在尝试制作一个简单的加密程序,将字符串转换为ascii数字,将每个数字的值减去一,然后通过将ascii数字转换回字母来打印字符串。 我想知道可以使用什么代码来实现这一点 for(int i= 0; i < textToEncrypt.length (); ++i) { char c = textToEncrypt.charAt(i); int j = (int)c - 1; System.out.println(

我一直在尝试制作一个简单的加密程序,将字符串转换为ascii数字,将每个数字的值减去一,然后通过将ascii数字转换回字母来打印字符串。 我想知道可以使用什么代码来实现这一点

for(int i= 0; i < textToEncrypt.length (); ++i) {
            char c = textToEncrypt.charAt(i);
            int j = (int)c - 1;
            System.out.println(j);

        }
到目前为止,我已经能够完成第一部分,但不能完成第二部分


谢谢。

您不需要使用整数,只需将字符减量即可

你可以这样写:

    for(int i= 0; i < textToEncrypt.length (); ++i) {
        char c = textToEncrypt.charAt(i);
        c--;
        System.out.print(c);
    }

您可以使用以下代码对文本进行解密

Integer[] arr = new Integer[100];
    for (int i = 0; i < textToEncrypt.length(); ++i) {
        char c = textToEncrypt.charAt(i);
        int j = (int) c - 1;
        System.out.println(j);
        arr[i] = j;
    }
    StringBuffer decriptText = new StringBuffer();
    for (int i = 0; i < textToEncrypt.length(); ++i) {
        decriptText.append(Character.toString((char) (arr[i] + 1)));
    }
    System.out.println(decriptText);

这个问题似乎离题了,因为它是对代码的请求,而不是一个问题。++i可以工作,但只是因为它是在第二次迭代中执行的,所以为了可读性,i++应该是首选。似乎不需要中间数组。