Java 如何将第一个数字(0)映射为数组中的整数?

Java 如何将第一个数字(0)映射为数组中的整数?,java,Java,我试图打破一个int值并将其保存为一个数组,我尝试使用这种方法,它工作正常,除非第一个数字是零,它将它保存为1而不是0。我该如何解决这个问题 int k2CombinedEnc = in.nextInt(); int[] k2Enc = Integer.toString(k2CombinedEnc).chars().map(c -> c-='0').toArray(); for(int element: k2Enc) { System.out.println("encrypted

我试图打破一个int值并将其保存为一个数组,我尝试使用这种方法,它工作正常,除非第一个数字是零,它将它保存为1而不是0。我该如何解决这个问题

int k2CombinedEnc = in.nextInt();
int[] k2Enc = Integer.toString(k2CombinedEnc).chars().map(c -> c-='0').toArray(); 
for(int element: k2Enc) {
    System.out.println("encrypted ciphertext is" + element);
}
示例输出:

0010101010
加密密文是1
加密密文为0
加密密文是1
加密密文为0
加密密文是1
加密密文为0
加密密文是1
加密密文为0

您正在以整数形式读取该值。由于编号
010
仅为
10
,所以所有前导零都被去除

把它当作字符串来读,你会没事的

String k2CombinedEnc = in.nextLine();
int[] k2Enc = k2CombinedEnc.chars().map(c -> c-='0').toArray(); 

for(int element: k2Enc) {
    System.out.println("encrypted ciphertext is" + element);
}

<强>注释:< /强>考虑使用方法而不是减法:

int[] k2Enc = k2CombinedEnc.chars().map(c -> Character.digit(c, 10)).toArray(); 

您正在以整数形式读取该值。由于编号
010
仅为
10
,所以所有前导零都被去除

把它当作字符串来读,你会没事的

String k2CombinedEnc = in.nextLine();
int[] k2Enc = k2CombinedEnc.chars().map(c -> c-='0').toArray(); 

for(int element: k2Enc) {
    System.out.println("encrypted ciphertext is" + element);
}

<强>注释:< /强>考虑使用方法而不是减法:

int[] k2Enc = k2CombinedEnc.chars().map(c -> Character.digit(c, 10)).toArray(); 

您还可以直接处理加密密码字符串的字节

String k2CombinedEnc = in.nextLine();
byte[] encodedBytes = k2CombinedEnc.getBytes(StandardCharsets.US_ASCII)
System.out.println("encrypted ciphertext is: ");
int i = 0;
for(byte element : encodedBytes) {
    System.out.println(" byte " + i++ + ": " + Integer.toHexString(element));
}

您还可以直接处理加密密码字符串的字节

String k2CombinedEnc = in.nextLine();
byte[] encodedBytes = k2CombinedEnc.getBytes(StandardCharsets.US_ASCII)
System.out.println("encrypted ciphertext is: ");
int i = 0;
for(byte element : encodedBytes) {
    System.out.println(" byte " + i++ + ": " + Integer.toHexString(element));
}

@用户8758564很高兴我能帮上忙。请务必注意,您。如果一篇帖子对你有帮助,你可以对其进行投票和/或将其标记为接受答案(绿色勾号)。(这也适用于上的答案。)@user8758564很高兴我能帮上忙。请务必注意,您。如果一篇帖子对你有帮助,你可以对其进行投票和/或将其标记为接受答案(绿色勾号)。(这也适用于上的答案。)