-5

我有一个字符串

01 01 01 02 01 01 20 00 40 0b 00 01 ef cc 45 4e 47 00 1a 02

我怎样才能把它读作输入?我知道声明

String s = "01 01 01 02 01 01  20 00 40 0b 00 01 ef cc 45 4e  47 00 1a 02"

显然会抛出错误,那么我可以使用 Java 读取此输入(作为参数传递)的不同可能方式是什么?

4

4 回答 4

5

我假设您想将其作为十六进制数据读取,而不是作为字符串读取。

首先删除字符串中的空格,所以它应该看起来像“0101010201012000400b0001efcc454e47001a02”

然后,创建一个 BigInteger 来保存它,如下所示:

BigInteger hex = new BigInteger(s, 16);

现在您应该将十六进制值存储在变量 hex 中。

于 2012-09-19T04:22:37.843 回答
2

如果您将它们作为变量参数传递,那么您可以像这样得到它:

public static void main(String[] args) {
    if(args.length() > 0) {
        String myInput = args[0]; //Here is where you get them...
        //Process myInput
    }
}
于 2012-09-19T04:22:29.527 回答
2

这是你的神秘号码

import java.math.BigInteger;
class Main {
  public static void main(String[] args) {
    System.out.println(new BigInteger("01 01 01 02 01 01 20 00 40 0b 00 01 ef cc 45 4e 47 00 1a 02".replaceAll("\\s+", ""), 16));
  }
}

它是

5731379310208105099069359549013101637718252034

请参阅http://ideone.com/uGh17上的现场演示

于 2012-09-19T04:34:01.517 回答
0
String s = "01 01 01 02 01 01 20 00 40 0b 00 01 ef cc 45 4e 47 00 1a 02";

应该管用...

于 2012-09-19T04:20:41.840 回答