写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串点击打开查重,在点击关闭
下面是我的代码:
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);
当然在这个题目中,我还用到了字符之间大小的比较,这样方便转化。