用Java打印随机数

用Java打印随机数,java,encryption,Java,Encryption,所以,我在编码领域有点像个傻瓜,我正在研究一种凯撒密码,它在以随机数为密钥的前提下工作 package cryptography; import java.util.Scanner; import java.util.Random; public class Caesar_Cipher { public static void main(String[] args) { Scanner scanner = new Scanner (System.in);

所以,我在编码领域有点像个傻瓜,我正在研究一种凯撒密码,它在以随机数为密钥的前提下工作

package cryptography;

import java.util.Scanner;
import java.util.Random;

public class Caesar_Cipher {


    public static void main(String[] args) {

        Scanner scanner = new Scanner (System.in);
        Random generator = new Random();
        int x = generator.nextInt();
        String input;
        char[] letters;

        System.out.println ("Input original message.");
        input = scanner.nextLine();

        letters = input.toCharArray();

        for (int index = 0; index < letters.length; index++) {

            letters[index] += x;

        }

        System.out.println ("The key is: " + x + ". \n"); //Here's the problem
        System.out.print ("Your encrypted message: ");
        System.out.println (letters);

    }

}
包加密;
导入java.util.Scanner;
导入java.util.Random;
公共类凯撒密码{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
随机生成器=新随机();
int x=generator.nextInt();
字符串输入;
字符[]个字母;
System.out.println(“输入原始消息”);
输入=scanner.nextLine();
字母=输入。toCharArray();
for(int index=0;index

问题是我不知道如何打印与加密相同的数字。

先生,你的问题让每个人都感到困惑。你想打印出你输入的内容,但对随机键和其他东西的要求却完全不同

不能像使用
System.out.println(字符数组)那样打印字符[]的数组,或者首先将其转换为可读(即正确实现toString()的)对象(例如字符串),或者使用循环逐个打印每个字母

编辑:我很清楚你想用这个评论做什么:

它打印的信息与我写的不同


有什么问题吗?它应该打印与“加密”中使用的数字相同的数字,而不是。我尝试使用相同的号码查看是否收到相同的消息,但我没有。您是想了解如何解密消息,还是只打印密钥?要解密,您必须执行与加密操作相反的操作(无论如何使用此加密)!只需打印钥匙。我知道如何解密,我有一个单独的程序,我不明白。在为您发布的代码分配初始随机值后,不会更改该代码中的
x
值。这怎么不是你期望的数字?