admin管理员组文章数量:1794759
华为——进制转换
题目描述
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:输入一个十六进制的数值字符串。
输出描述:输出该数值的十进制字符串。
示例1 输入 0xA 输出10
关键在于使用Integer的parseInt函数
public static int parseInt(String s, int radix) throws NumberFormatException
如果发生以下任意一种情况,则抛出一个 NumberFormatException 类型的异常:
- 第一个参数为 null 或一个长度为零的字符串。
- 基数小于 Character.MIN_RADIX 或者大于 Character.MAX_RADIX。
- 假如字符串的长度超过 1,那么除了第一个字符可以是减号 '-' ('u002D’) 外,字符串中存在任意不是由指定基数的数字表示的字符。
- 字符串表示的值不是 int 类型的值。
示例:
parseInt("0", 10) 返回 0 parseInt("473", 10) 返回 473 parseInt("-0", 10) 返回 0 parseInt("-FF", 16) 返回 -255 parseInt("1100110", 2) 返回 102 parseInt("2147483647", 10) 返回 2147483647 parseInt("-2147483648", 10) 返回 -2147483648 parseInt("2147483648", 10) 抛出 NumberFormatException parseInt("99", 8) 抛出 NumberFormatException parseInt("Kona", 10) 抛出 NumberFormatException parseInt("Kona", 27) 返回 411787
一个参数的ParseInt函数
parseInt public static int parseInt(String s) throws 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 } } }本文标签: 华为
版权声明:本文标题:华为——进制转换 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686576996a83751.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论