1.题目
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
2.知识点
(1)Scanner的成员函数has或者hasnext可以用于持续输入
while(in.hasNextLine()){
}
(2)将char类型的数字直接转换成int,实际保存的是其ascll码,而不是数值。
(3)将字符串转换成整数Integer
public static int parseInt(String s)将字符串参数作为有符号的十进制整数进行解析
public static int parseInt(String s,int radix)通过radix进制将s转换成整数
(4)public static double pow(double a, double b)返回第一个参数的第二个参数次幂的值
3.代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in = new Scanner(System.in);
while(in.hasNextLine()){
String s = in.nextLine();
int a=0;
int j='A'-10;
int k=0-'0';
s=s.substring(2);
for(int i=0;i<s.length();i++){
int b=s.charAt(i);
int m=s.length()-1-i;
if(b>='0'&&b<='9'){
b=b+k;
a=(int) (a+b*Math.pow(16, m));
}
else {
b=b-j;
a=(int) (a+b*Math.pow(16, m));
}
}
System.out.println(a);
}
}
}