2011-07-12 57 views
3

今天早上很簡單,但引起了我的問題,似乎無法找到任何代碼。我創建了一個數字的十六進制表示,並希望現在保存十六進制字符串的最後4個字符,然後轉換回一個整數。在android中保存一個字符串的最後4個字符

該轉換的代碼如下所示:

int in2 = new Integer(mycard.resourceid.toString()); 
String hex = Integer.toHexString(in2); 

如果有人可以輕移我在正確的方向,我將非常感激。

int in3 = new Integer(hex.length()); 
int in4 = new Integer (in3 - 4); 
String mystring = hex.subString(in4, in3); 
+0

關於代碼格式化的快速註釋:用4個字符縮進(或使用編輯器中的「{}」按鈕)足以格式化您的代碼。如果你縮進4倍的倍數,它會在頁面的中途結束,並最終觸發一個水平滾動條。 – razlebe

+0

對不起,它保留了代碼本身的縮進,現在修復它。不要以爲你可以看到這是如何使用一個字符串? – chris

回答

7

如果你只是想要一個輕推,尋找String類的substring方法。

編輯:響應OP後續一些示例代碼:

public class Test { 
    public static void main(String[] args) throws Exception { 
     Integer in2 = 897387483; 
     String hex = Integer.toHexString(in2); 
     System.out.println(hex); 
     System.out.println(hex.substring(hex.length()-4, hex.length())); 
    } 
} 
+0

可愛的,現在會這樣做 - 謝謝 – chris

+0

有一個小問題,說我正在嘗試使用字符串。更新原始文件,看不到我如何使用字符串。 – chris

+0

@chris我在代碼中添加了一段代碼。它運行良好。看看你是否可以比較它與你有什麼。我認爲你錯誤地使用了'substring'。 –

0
String s = mycard.resourcdeid.toString(); 
int in2 = Integer.parseInt(s.substring(s.length() - 4, s.length()); 
+0

嗨,對不起,我是一個機器人小白,並且想知道爲什麼我的錯誤在那裏。十六進制字符是我希望保存的9f8f等,不會保存爲int不會導致像f這樣的字符錯誤? – chris

+0

所以...不要把它解析爲int。我不明白問題是什麼。 –

0

(新的整數(intValueYouLikeToConvert &爲0xFFFF))toHexString()應做的伎倆

所有前面的例子做不考慮,結果字符串可能短於4個字符

0

讓我們假設您的十六進制字符串是:String hex = oxFFFFFF take substring hex = hex.subString(2);

相關問題