[英]Converting Integer To Hex Java
我的應用程式需要標題中所寫的int []格式。
我正在從HashMap
獲取值,該HashMap
是使用[00,00,00,00]格式填充到XML文件中的,但是對於每個前面有0x
int
,我都需要它。
我試圖通過for循環對其進行“轉換”:
for(int i = 0; i < value.length; i++){
value[i] = "0x" + value[i];
}
但是我不能以這種方式從String
轉換為int
。
然后,我嘗試直接在XML文件中進行更改,但是隨后我的應用因NPE崩潰。
現在,我想知道是否可以解決我的問題。
編輯:
進一步說明:
我之前嘗試過此方法,但沒有成功:
public int[] getValue(Map map, String key) {
Map keyMap = map;
int[] value = {};
@SuppressWarnings("rawtypes")
Iterator iter = keyMap.entrySet().iterator();
while (iter.hasNext()) {
@SuppressWarnings("rawtypes")
Map.Entry mEntry = (Map.Entry) iter.next();
if (mEntry.getKey().equals(key)) {
value = (int[]) mEntry.getValue();
}
}
return value;
}
然后我嘗試了答案之一並添加了
for(int i = 0; i < value.length; i++){
value[i] = Integer.valueOf(String.valueOf(value[i]), 16);
}
返回之前。 現在它可以工作了...但是我不知道為什么它可以工作:(
在任何類型的語言中,int / number值都沒有格式。 Java使用2的補碼將int值存儲為4個字節的方式,因此0或0x0或00(八進制)或0b是相同的值:二進制字中包含32個零。
第二編輯:
我認為您的工程過度。 您應該使用的是
Map<String,int[]> map;
然后,如果您編寫map.get(key),您將獲得所需的內容。
新的解釋:以前的解決方案有效,因為當您讀取XML時,將值存儲為十進制值:
String s="80";
int i= Integer.valueOf(s); //it stores 80 (decimal value)
int value= Integer.valueOf(String.valueOf(i),16); //It stores 128, or 0x80 (hex value)
for(int i = 0; i < value.length; i++){
value[i] = Integer.valueOf(String.valueOf(value[i]), 16);
}
嘗試這個。 如果要十六進制值。 或者,如果您想要十六進制字符串,則可以使用以下代碼。
Integer.toHexString(integerValue)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.