我正在致力於通過BLE接收字符串格式數據的Android應用程序。 該字符串包含十六進制格式的ADC值。爲了節省存儲空間,我每個字節包含兩個十六進制值(例如0xED
)。但是,我無法從字符串中檢索這些值。 所以我需要能夠從字符串拆分每個索引字符在兩個字符串int[]
。將擴展字符轉換爲int java
至於現在我試圖得到charAt(index)
,然後鑄造char
到int
。但是,這僅適用於ASCII有效數據。一旦數據超過127個字符,它就會返回一個默認的異常值。有什麼辦法可以避免這種情況?
下面的代碼工作正常,低於127的每一個值,所以我只需要上述127
for (int i = 0; i < 119; i++) {
char charTemp1 = datastring.charAt(i);
int test = charTemp1 & 0xF0;
int test2 = charTemp1 & 0xF;
}
[解析](https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt(java.lang.String中,%20int))將它們與一個基數16 – litelite
請豎起一個[mcve]。向我們展示創建此類字符串的示例代碼,以及您卡在哪裏。 – GhostCat
不要濫用字符串來存儲任意字節。這可能適用於C,但不在這裏。 –