回答
将其解析为基数为2的整数,然后转换为字节数组。事实上,由于你有16位,现在是时候打破罕见的short
。
short a = Short.parseShort(b, 2);
ByteBuffer bytes = ByteBuffer.allocate(2).putShort(a);
byte[] array = bytes.array();
如果字符串中包含的位太多,即使在一个“长”变量中也不能保持? –
这太酷了!我不知道,谢谢! :) –
如果字符串太大,那么你会得到一个'NumberFormatException'。我假设这个小例子少于32个字符。 –
另一种简单的方法是:
String b = "0110100001101001";
byte[] bval = new BigInteger(b, 2).toByteArray();
假设你的二进制字符串可以由8个分没有得到休息,你可以使用下面的方法:
/**
* Get an byte array by binary string
* @param binaryString the string representing a byte
* @return an byte array
*/
public static byte[] getByteByString(String binaryString){
Iterable iterable = Splitter.fixedLength(8).split(binaryString);
byte[] ret = new byte[Iterables.size(iterable) ];
Iterator iterator = iterable.iterator();
int i = 0;
while (iterator.hasNext()) {
Integer byteAsInt = Integer.parseInt(iterator.next().toString(), 2);
ret[i] = byteAsInt.byteValue();
i++;
}
return ret;
}
不要忘记将guava lib添加到您的依赖关系。
在Android中,你应该添加到应用程序的gradle产出:
compile group: 'com.google.guava', name: 'guava', version: '19.0'
并添加到项目中的gradle产出这样的:
allprojects {
repositories {
mavenCentral()
}
}
更新1
This post contains的解决方案,而无需使用番石榴库。
- 1. 将二进制字符串表示转换为字节数组
- 2. MD5二进制字符串转换为字节数组
- 3. 将字符串转换为二进制
- 4. 将字符串转换为二进制
- 5. 将二进制转换为字符串
- 6. 将字符串转换为二进制
- 7. 将二进制字符串转换为二进制文字
- 8. C++将字节二进制值转换为字符串
- 9. Java将字节转换为二进制安全字符串
- 10. 将字节转换为c中的二进制字符串#
- 11. Go - 如何将二进制字符串转换为二进制字节?
- 12. 将二进制数据转换为节点中的字符串
- 13. 如何将160位二进制字符串转换为20字节数组?
- 14. 从二进制文件读取并将字节数组转换为字符串
- 15. ASP Classic - 将base64二进制字符串转换为字节数组
- 16. 将字符串数组(字节值)转换为字节数组
- 17. 将一串字符转换为一个二进制值数组
- 18. Cython将二进制字符串快速转换为int数组
- 19. 转换十六进制字符串字节到字节数组
- 20. 将字符串转换为二进制字符串
- 21. 将二进制字符串转换为文本字符串
- 22. 将二进制字符串转换为二进制
- 23. Python将二进制字符串转换为二进制int
- 24. 将字节数组转换为十六进制十进制字符串
- 25. 如何将字节转换为C#中的二进制数字字符串?
- 26. 将字节转换为二进制
- 27. 将二进制转换为字节[] array
- 28. 将字符串转换为字节数组并将字节数组转换为字符串
- 29. C# - 字节数组转换为十六进制字符串
- 30. 从字节数组转换为字符串十六进制c#
为什么长度2? –
@kocko他有16位... –
根据字符串b,你想要一个byte []长度为2,'104'在位置0,'105'在位置1? –