我有一个字符串
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 读取此输入(作为参数传递)的不同可能方式是什么?
我假设您想将其作为十六进制数据读取,而不是作为字符串读取。
首先删除字符串中的空格,所以它应该看起来像“0101010201012000400b0001efcc454e47001a02”
然后,创建一个 BigInteger 来保存它,如下所示:
BigInteger hex = new BigInteger(s, 16);
现在您应该将十六进制值存储在变量 hex 中。
如果您将它们作为变量参数传递,那么您可以像这样得到它:
public static void main(String[] args) {
if(args.length() > 0) {
String myInput = args[0]; //Here is where you get them...
//Process myInput
}
}
这是你的神秘号码
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
String s = "01 01 01 02 01 01 20 00 40 0b 00 01 ef cc 45 4e 47 00 1a 02";
应该管用...