如何解析java中的浮动十六进制字符串

时间:2015-02-06 10:19:52

标签: java type-conversion

我的十六进制字符串 string s=new String("FF7900002481201132570943440402151302961500080054021E000040FFFFFBFF79000024812011");

我想要字符串中的特定数据.. 我的格式:2481201132570943440402151302961500080054021E000040FFFFFBFF790000

它必须是字符串24中的起始值。 它在62年底分裂。值(2481201132570943440402151302961500080054021E000040FFFFFBFF790000 = 62) 最后分裂字符串?


以十六进制表示的12内容值

24 ---> (1) 8120113257 - (5) 094047 ---(3) 040215 ---(3) 13029615 -----(4) 00 -------(1) 080054021E -------(5) 000040 ----(3) FFFFFBFF - (4) 79 ---(1) 00 ------(1) 00 -----(1)

如何在java代码中解决它?

由于

3 个答案:

答案 0 :(得分:0)

您可以使用

Long.parseLong(string, 16);

答案 1 :(得分:0)

内容的大小是固定还是浮动? 如果是,你可以使用substring和:Long.parseLong(" FFFFFBFF",16);

答案 2 :(得分:0)

您可以将String解析为一系列字符串。

class StringParser {
     final StringReader sr;
     public StringParser(String text) {
          sr = new StringReader(text);
     }

     public String next(int n) {
          char[] chars = new char[n];
          sr.read(chars);
          return new String(chars);
     }

     public String nextAsLong(int n) {
          return Long.parseInt(next(n));
     }
}

StringParser sp = new StringParser("FF7900002481201132570943440402151302961500080054021E000040FFFFFBFF79000024812011");
sp.next(8); // ignored
long first= sp.nextAsLong(2);
long second = sp.nextLong(10);
// etc