2013-10-08 224 views
0

我有一個像「131008130225002」這樣的int值的字符串,我需要將它轉換爲十六進制字符串。我想盡各種辦法,toHex功能將字符串轉換爲十六進制字符串

  1. 輸出爲313331303038313330323235303032但我 並不需要它,
  2. 我使用ABC高達12個地方需要十六進制格式。

  3. 我試過Integer.tohex,但它不在的整數

  4. 的範圍如果Double.tohex的它給0x1.dc9ad4424da8p46

我的朋友在IOS使用做同樣的工作,無符號長長作爲數據類型和0X%02llx正則表達式轉換的NSString

代碼是:

String x="131008130225002"; 
System.out.println(x); 
    // System.out.println(Integer.parseInt(x)); 
    System.out.println(Double.parseDouble(x)); 
    System.out.println(Double.toHexString(Double.parseDouble(x))); 
    String a1= toHex(x); 
    System.out.println(a1); 

toHex功能:

static String toHex(String arg) { 
    try { 
     return String.format("%12x", new BigInteger(1, arg.getBytes("UTF-8"))); 
    } catch (UnsupportedEncodingException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return null; 
} 
+1

目前尚不清楚你想要做什麼。你的字符串是你想要轉換爲十六進制的十進制數嗎?或者是一個十進制數字序列,您希望將它們分別轉換爲十六進制?顯示您輸入的預期輸出。 –

+0

它是從不同地方回收的小數的組合,現在我想將其轉換爲十六進制並將其作爲參數傳遞 – HimanshuR

+1

@HimanshR後**您希望從轉換中看到的確切結果**單個精確結果表示多於1000字,發佈請... – ppeterka

回答

1
String x = "131008130225002"; 
System.out.println(new BigInteger(x).toString(16)); 

輸出是7726b510936a。

1

它適合於long,所以你可以使用Long.toHexString

System.out.println(Long.toHexString(Long.parseLong("131008130225002"))); 

對於更通用的解決方案,BigInteger還具有a toString function這需要在基數(16是當然的十六進制)。

System.out.println(new BigInteger("131008130225002").toString(16)); 

以上兩者均打印出7726b510936a

+0

感謝兄弟,用戶ans更具說明性 – HimanshuR

相關問題