我有一个问题,我想将输入字符串转换为BigInteger,输出应该是二进制字符串。我使用了这段代码,但它只能读取“0”和“1”。
Scanner scan = new Scanner(System.in);
String input = scan.nextLine();
BigInteger big = new BigInteger(input, 2);
String binarystring = big.toString(2);
System.out.println(binarystring);
当我将其更改为:BigInteger big = new BigInteger(input, 16);
时
我可以用十六进制数写,但没有空格。
我想要的是我可以写任何字符串,程序应该在字符串中给我二进制值。
答案 0 :(得分:0)
像“hey world”这样的字符串在base 10中没有任何有意义的数字表示,所以我建议输出一个合适的消息。
Scanner scan = new Scanner(System.in);
String input = scan.nextLine();
try {
BigInteger big = new BigInteger(input); // default constructor is base 10
System.out.println(big.toString(2));
}
catch (NumberFormatException){
System.out.println("Input was not a decimal number");
}