回答
將其解析爲基數爲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? –