华为——进制转换

来源:互联网 发布:ps cs6 for mac破解版 编辑:程序博客网 时间:2024/05/20 19:28

题目描述

写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )


输入描述:

输入一个十六进制的数值字符串。



输出描述:

输出该数值的十进制字符串。

示例1

输入

0xA

输出

10


关键在于使用Integer的parseInt函数

public static int parseInt(String s,                           int radix)                    throws NumberFormatException
使用第二个参数指定的基数,将字符串参数解析为有符号的整数。除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D’)外,字符串中的字符必须都是指定基数的数字(通过Character.digit(char, int) 是否返回一个负值确定)。返回得到的整数值。

如果发生以下任意一种情况,则抛出一个 NumberFormatException 类型的异常:

  • 第一个参数为 null 或一个长度为零的字符串。
  • 基数小于 Character.MIN_RADIX 或者大于Character.MAX_RADIX
  • 假如字符串的长度超过 1,那么除了第一个字符可以是减号 '-' ('u002D’) 外,字符串中存在任意不是由指定基数的数字表示的字符。
  • 字符串表示的值不是 int 类型的值。

示例:

parseInt("0", 10) 返回 0parseInt("473", 10) 返回 473parseInt("-0", 10) 返回 0parseInt("-FF", 16) 返回 -255parseInt("1100110", 2) 返回 102parseInt("2147483647", 10) 返回 2147483647parseInt("-2147483648", 10) 返回 -2147483648parseInt("2147483648", 10) 抛出 NumberFormatExceptionparseInt("99", 8) 抛出 NumberFormatExceptionparseInt("Kona", 10) 抛出 NumberFormatExceptionparseInt("Kona", 27) 返回 411787

参数:
s - 包含要解析的整数表示形式的 String
radix - 解析 s 时使用的基数。
返回:
使用指定基数的字符串参数表示的整数。
抛出:
NumberFormatException - 如果String 不包含可解析的int


一个参数的ParseInt函数

parseInt

public static int parseInt(String s)                    throws NumberFormatException
将字符串参数作为有符号的十进制整数进行解析。除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字。返回得到的整数值,就好像将该参数和基数 10 作为参数赋予parseInt(java.lang.String, int) 方法一样。

参数:
s - 包含要解析的 int 表示形式的 String
返回:
用十进制参数表示的整数值。
抛出:
NumberFormatException - 如果字符串不包含可解析的整数。

AC代码如下:

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.nextLine();System.out.println(Integer.parseInt(str.substring(2,str.length()),16));}}
该测试用例有些问题


下面这个代码通过了:

import java.util.Scanner;public class Main{    public static void main(String[]args){        Scanner in = new Scanner(System.in);        while(in.hasNextLine()){            String str = in.nextLine();            System.out.println(Integer.parseInt(str.substring(2),16));//str.substring(2)表示去除0x        }    }}


原创粉丝点击