gpt4 book ai didi

java - 将 int[] 转换为 char[] 无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-04 14:21:56 25 4
gpt4 key购买 nike

//已编辑:抱歉,我没有粘贴重要的代码。我用其余代码编辑了这篇文章。

我在将整数数组转换为字符数组时遇到问题。一切都可以编译,但转换后没有数字。

代码:

 plik1 = new Scanner(new File("plik1.txt"));

String line1 = plik1.nextLine();
String line2 = plik1.nextLine();

line1.trim();
line2.trim();

String[] numberArray1 = line1.split(" ");
String[] numberArray2 = line2.split(" ");

int length_line1 = numberArray1.length;
int length_line2 = numberArray2.length;

int buffer1[] = new int[length_line1];
int buffer2[] = new int[length_line2];

for(j=0; j<buffer1.length; j++) {
buffer1[j] = Integer.valueOf(numberArray1[j]);
}

for(j=0; j<buffer2.length; j++) {
buffer2[j] = Integer.valueOf(numberArray2[j]);
}

char[] buffer11 = new char[buffer1.length];
char[] buffer22= new char[buffer2.length];

for(j=0; j<buffer1.length; j++) {
char number = (char) buffer1[j];
buffer11[j] = number;
}

for(j=0; j<buffer2.length; j++) {
char number = (char) buffer2[j];
buffer22[j] = number;
}

for(j=0; j<buffer11.length; j++)
System.out.print(buffer11[j] + " ");

System.out.println();

for(j=0; j<buffer22.length; j++)
System.out.print(buffer22[j] + " ");

这是打印函数显示的内容:

      7   +  Z  X  
B $ + N X

如何解决?

最佳答案

当你这样做

char number = (char) buffer1[j];

实际上,您将整数值放入 char 中,但根据 ascii table ,值为 43 的 char 是“+”加号。 ,这就是为什么你会得到你正在谈论的输出。

我给你举个例子:

假设plik1.txt包含

45, 66
46, 67

然后在阅读 numberArray1numberArray2 后包含

["45", "66"]
["46", "67"]

然后 buffer1buffer2 包含

[45, 66]
[46, 67]

现在buffer11buffer22将包含保存的东西,但是当你尝试打印它们时,java将打印与该数字对应的ASCII符号,意思是:

- B
. C

所以,总而言之,你的“将 int[] 转换为 char[]” 工作得很好,只是你认为它会做其他事情

关于java - 将 int[] 转换为 char[] 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27089124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com