簡體   English   中英

將字符串轉換為十六進制字符串

[英]convert string to hexadecimal string

我有一個字符串整數值,例如“ 131008130225002”,我需要將其轉換為十六進制字符串。 我嘗試了各種方法

  1. toHex函數的輸出為313331303038313330323235303032,但我不需要它,
  2. 我需要使用ABC的十六進制格式最多12個位置。

  3. 我嘗試了Integer.tohex,但超出整數范圍

  4. 如果是Double.tohex,則給出0x1.dc9ad4424da8p46

我的朋友在使用unsigned long的 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;
}
String x = "131008130225002";
System.out.println(new BigInteger(x).toString(16));

輸出為7726b510936a。

它將long ,因此您可以使用Long.toHexString

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

對於更通用的解決方案, BigInteger還具有一個toString函數 ,該函數接受一個基數(當然16是十六進制)。

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

以上兩個都打印出7726b510936a

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM