作为输入,我有二进制字符串String a = "100110"
。作为输出,我需要具有二进制字节数组byte[] b = {1,0,0,1,1,0}
。现在我正在使用
for (int i=0; i<a.length; i++) { b[i]= Byte.parseByte(a.substring(i, i+1)); }
但是这种方法太慢了。有人可以提出更好的建议吗?谢谢
您可以在不为子字符串创建对象的情况下完成此操作,如下所示:
for (int i=0; i<a.length; i++) {
b[i]= a.charAt(i)=='1' ? (byte)1 : (byte)0;
}
您的方法较慢的原因是,每次调用都会substring
产生一个新String
对象,该对象一旦parseByte
完成就可以进行垃圾收集。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句