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

标签 java arrays casting char integer

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

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

代码:

 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/

相关文章:

c++ - 我能否判断转换为父类的对象类型最初是否是 C++ 中的子类?

java - 公共(public)类 Extra<BASE> 扩展 BASE

java - RestTemplate POST 请求 RequestParams 和 RequestBody

java - 将输入保存到文件

php - 如何从codeigniter中的数组获取单个值

arrays - 验证数组内容 Mongoose 模型

javascript - 迭代 JavaScript 对象数组元素

java - 如何在 gradle 中设置库构建顺序?

c# - 为什么我不能像这样将 smallint 从 MSSQL 转换为 int : int x = (int)dt. Rows[x] ["smallIntColumn"]

c++ - 为什么我们需要在不分配变量的情况下强制转换它?