我在这里可能有点愚蠢,但我似乎想不出一个直接解决这个问题的方法。
我目前有一个包含 ASCII 字符代码的 int[],但是,对于 ASCII 表,任何 < 32 的值都是控制代码。所以我需要做的是对于任何 > 32 的值,将 ASCII 字符放入 char[],但是如果它 < 32,只需将文字整数值作为字符放入。
例如:
public static void main(String[] args) {
int[] input = {57, 4, 31}; //57 is the only valid ASCII character '9'
char[] output = new char[3];
for (int i = 0; i < input.length; i++) {
if (input[i] < 32) { //If it's a control code
System.out.println("pos " + i + " Not an ascii symbol, it's a control code");
output[i] = (char) input[i];
} else { //If it's an actual ASCII character
System.out.println("pos " + i + " Ascii character, add to array");
output[i] = (char) input[i];
}
}
System.out.println("\nOutput buffer contains:");
for (int i = 0; i < output.length; i++) {
System.out.println(output[i]);
}
}
输出是:
pos 0 Ascii character, add to array
pos 1 Not an ascii symbol, it's a control code
pos 2 Not an ascii symbol, it's a control code
Output buffer contains:
9 // int value 57, this is OK
如您所见,数组中的最后两个条目是空白的,因为实际上 4 或 31 都没有 ASCII 字符。我知道有转换Strings
为的方法char[]
,但是当您已经有了一个 char[] 你想要的值。
可能有一个非常简单的解决方案,我想我只是有一个愚蠢的时刻!
任何建议将不胜感激,谢谢!