如何将字节与字符分开?

时间:2014-08-28 16:42:14

标签: java

我有一个字节数组到达,它包含从-128到127的正常值,还有一些像'O','K',空格的字符。

我怎样才能将它们分开并以正确的格式打印?为了价值,我打印价值,对于角色我打印'O','K'像一个字符串?

1 个答案:

答案 0 :(得分:2)

不幸的是,任何字节或任何字节组合都可能是一个字符,具体取决于您的字符编码。您可能试图将人类可读的字符分开。

在这种情况下,良好的编码将是ISO_8859-1(标准1字节编码):

byte[] array = ...; //this is your byte array
String string = new String(array, "ISO_8859-1"); //convert ALL the bytes to characters

现在,您可以使用Character类来检查您拥有的字符类型:

for(int i = 0; i < array.length; i++) {
    char ch = string.charAt(i);
    //now perform your tests on the character
    if(.../*character is good*/) System.out.println(ch);
    else /*character shouldn't be displayed*/ System.out.prinln(((int)ch));
}

例如,您可以打印代表有效字母的所有字符:

if(Character.isLetter(ch)) ...

我认为这应该做你打算做的事情,但你为什么要这样做是非常值得怀疑的。