使用空格作为输入读取字符串的不同方法?

时间:2012-09-19 04:17:42

标签: java string

我有一个像

这样的字符串
  

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 个答案:

答案 0 :(得分:5)

我假设你想用十六进制数据读取它,而不是字符串。

首先删除字符串中的空格,使它看起来像" 0101010201012000400b0001efcc454e47001a02"

然后,创建一个BigInteger来保存它:

BigInteger hex = new BigInteger(s, 16);

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

答案 1 :(得分:2)

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

public static void main(String[] args) {
    if(args.length() > 0) {
        String myInput = args[0]; //Here is where you get them...
        //Process myInput
    }
}

答案 2 :(得分: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

上的实时演示

答案 3 :(得分:0)

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

应该有用......