赞
踩
As an input I have binary string String a = "100110". As output I need to have binary byte array byte[] b = {1,0,0,1,1,0}.
For now I'm using
for (int i=0; i
b[i]= Byte.parseByte(a.substring(i, i+1));
}
But this approach is too slow. Can any one give a better suggestion? Thank you
解决方案
You can do it without making objects for substrings, like this:
for (int i=0; i
b[i]= a.charAt(i)=='1' ? (byte)1 : (byte)0;
}
The reason your approach is slower is that each call to substring produces a new String object, which becomes eligible for garbage collection as soon as parseByte is done with it.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。