进制转换(char和string转换int)

来源:互联网 发布:芜湖一中王海飞 知乎 编辑:程序博客网 时间:2024/06/11 10:23

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);}}}

原创粉丝点击