写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串点击打开查重,在点击关闭
下面是我的代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(http://System.in);
String str = null ;
while(scanner.hasNextLine()){
int num = 0;
int exp;
str = scanner.nextLine().toLowerCase();
for (int j = 2; j <str.length(); j++) {
exp = (int)Math.pow(16, str.length()-j-1);
if ('a'<=str.charAt(j)&&str.charAt(j)<='z') {
Math.pow(16, j-2);
num += (str.charAt(j)-87)*exp;
} else {
num += (str.charAt(j)-48)*exp;
}
}
System.out.println(num);
}
scanner.close();
}
}
运行结果如下:
这个题目我们可以总结到如下的知识点:
从字符串中寻找下一个输入:scanner.hasNextLine()
把字符串全部变成小写:scanner.toLowerCase()
把字符串全部变成大写:scanner.toUpperCase()
指数函数的使用:Math.pow(16, j-2);
当然在这个题目中,我还用到了字符之间大小的比较,这样方便转化。