我有一个字节数组到达,它包含从-128到127的正常值,还有一些像'O','K',空格的字符。
我怎样才能将它们分开并以正确的格式打印?为了价值,我打印价值,对于角色我打印'O','K'像一个字符串?
答案 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)) ...
我认为这应该做你打算做的事情,但你为什么要这样做是非常值得怀疑的。