String hexStr="FF";
String twoStr="10101010";
String oStr="567";
try{
int hex=Integer.parseInt(hexStr,16);
int two=Integer.parseInt(hexStr,2);
int o=Integer.parseInt(hexStr,8);
System.out.println(hex);
System.out.println(two);
System.out.println(o);
}
catch(NumberFormatException nfe)
{
}
String twoStr="10101010";
String oStr="567";
try{
int hex=Integer.parseInt(hexStr,16);
int two=Integer.parseInt(hexStr,2);
int o=Integer.parseInt(hexStr,8);
System.out.println(hex);
System.out.println(two);
System.out.println(o);
}
catch(NumberFormatException nfe)
{
}
static int parseInt(String s, int radix)
static String toHexString(int i)
static String toOctalString(int i)
static String toBinaryString(int i)
static String toString(int i)
同样的道理还可以处理 folat ,long 等类型数据的进制转换
你不太会的话可以查查.
运行到这里就会出这种错误:
java.lang.NumberFormatException: 3e8
at java.lang.Integer.parseInt(Integer.java:414)
我是其他好多种方法,都不行!!!希望各位多多指点!!!!谢谢!!!!!!!!
public static int parseInt(String s, int radix),第二个参数是进制,请多看看API说明。
"3e8"能用10为基数解析吗?
应该这样:(不含异常处理)
int temp = Integer.parseInt("3e8",16);
String hexStr = Integer.toHexString(temp);
String binStr = Integer.toBinaryString(temp);
System.out.println("Hex:" + hexStr );
System.out.println("Bin:" + binStr );