【发布时间】:2015-04-17 20:23:00
【问题描述】:
用户以十六进制或二进制输入一个数字(必须以 0x 或 0b 为前缀,如果没有给出错误消息)。 将用户输入读取为字符串
我不能使用基数,我只是在使用 integer.parseInt(s)
我不知道如何使这个程序工作..请帮助 我在这里错过了什么?
import java.util.Scanner;
public class conversion {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//ask user to enter either hex or binary
System.out.println("Please enter a hex (0x) or binary (0b) number: ");
//read input as string
String hexString = input.nextLine();
String binString = input.nextLine();
//if prefix (0x)
if ((hexString.substring(0,2)).equals("0x")) {
int hex = Integer.parseInt(hexString, 16);
System.out.println("Converting from base-16 to base-10.\n" + hex);
//if there are no digits or invalid digits after Ox
//if ((hexString.substring(beginIndex))) {
// System.out.println("Error parsing base-16 number");
//}
//if prefix (0b)
} else if ((binString.substring(0,2)).equals("0b")) {
int bin = Integer.parseInt(binString, 2);
System.out.println("Converting from base-2 to base-10.\n" + bin);
//if there are no digits or invalid digits after Ob
//if ((binString.substring(beginIndex))) {
// System.out.println("Error parsing base-2 number");
//}
} else {
System.out.println("I don't know how to covert that number");
}
【问题讨论】: