需要用ascii空格(即0x20 OR“”)初始化byte []数组

时间:2011-04-26 03:14:44

标签: java android

你好,所有Ol'Guy新手在这里...... 我已经定义了一个string => final static String Blank =“”; 和一个字节数组 static byte [] LU62_Partner = new byte [8];

在我的逻辑中,我想用空格

初始化byte []数组
     // Prep LU6.2 Session  
 for ( ndx=0 ; ndx < 8 ; ++ndx)
   { 
     LU62_Partner[ndx] = Blank.getBytes() ;    // initialize the the LU6.2 partner name byte array w/blanks  
   }
 LU62_Partner = APPC_Partner.getBytes() ;      // convert string array to byte array 
                                               // if the appc-partner name < 8 bytes, rightmost bytes
                                               // will be padded with blanks 

但是在编译时我收到以下错误 src \ LU62XnsCvr.java:199:不兼容的类型 发现:byte [] 必需:字节          LU62_Partner [ndx] = Blank.getBytes();

我再次感到困惑......我认为方法getBytes()会将字符串转换为字节。 再次感谢

盖伊

2 个答案:

答案 0 :(得分:4)

getBytes()返回一个数组,因此你试图将一个字节数组合成一个字节

使用

Arrays.fill(LU62_Partner, (byte)' ');

答案 1 :(得分:3)

我想你想要那条线

LU62_Partner[ndx] = Blank.getBytes()[0];

赋值左侧的变量是一个字节,因此右侧的值也应该是一个字节,而不是一个字节数组。

在任何情况下,由于你已经隐含地假设空间是一个字节,为什么不说呢

LU62_Partner[ndx] = (byte) ' ';

LU62_Partner[ndx] = 0x20; 

(因为十六进制20是空格)?

编辑:正如@MeBigFatGuy指出的那样,Arrays.fill()会让你彻底消除你的显式循环。