进制转换

进制转换

http://www.nowcoder.com/questionTerminal/8f3df50d2b9043208c5eed283d1d4da6

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws Exception{
        Scanner sc = new Scanner(System.in);
        while(sc.hasNextLine()){
            String s = sc.nextLine();
            System.out.println(Integer.parseInt(s.substring(2,s.length()),16));
        }
    }
}
全部评论
***鬼才
1 回复 分享
发布于 2022-04-10 11:05
有问题,应该是这样 public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str =br.readLine(); if(str.startsWith("0x")){ System.out.println(Integer.parseInt(str.substring(2,str.length()),16)); }else{ System.out.println(Integer.parseInt(str,16)); } }
11 回复 分享
发布于 2022-08-31 22:23 陕西
我来补充说明一下吧: 读入的字符串中包含十六进制的字符 '0x',而这些字符对于转换是没有意义的。因此,在调用 parseInt 方法之前需要将这两个字符截取掉,可以使用 substring() 方法完成。因为在十六进制中,每个数字需要用 4 位二进制数表示,因此字符串中第一个有效的数字位从第三个字符开始,因此需要从 s 字符串的第 2 个位置开始截取。而截取的长度可以利用字符串的 length() 方法得到。
10 回复 分享
发布于 2023-04-24 16:36 浙江
substring方法可以只输一个参数就完美了
5 回复 分享
发布于 2021-12-22 23:22
s.length()多余了
3 回复 分享
发布于 2022-04-15 23:01
牛啊,才知道转换成int是有进制入参的
2 回复 分享
发布于 2022-02-22 23:03
行吧 你这一行代码直接把我看蒙蔽了
2 回复 分享
发布于 2022-05-29 11:41
Java.io,在哪里用到了
1 回复 分享
发布于 2022-02-28 21:06
直接调用api是写算法么 ???
1 回复 分享
发布于 2022-05-21 11:42
您在这卡bug呢(狗头)
1 回复 分享
发布于 2022-05-23 16:35
这样没有体现数学思想。。。
1 回复 分享
发布于 2023-03-13 18:46 上海
66666
点赞 回复 分享
发布于 2022-02-25 16:18
纯调用API会不会被面试官鄙视啊
点赞 回复 分享
发布于 2022-03-31 15:57
为什么要用while(sc.hasNextLine())啊
点赞 回复 分享
发布于 2022-04-02 20:32
为啥要用Integer.parseInt(s.substring(2),16)啊???
点赞 回复 分享
发布于 2022-04-04 21:05
牛,Java的类和方法太多了,居然能想到用这种方法
点赞 回复 分享
发布于 2022-05-03 17:39
为啥要s.substring(2,s.length())啊求解
点赞 回复 分享
发布于 2022-06-02 21:02
为什么要截取字符串从2开始?
点赞 回复 分享
发布于 2022-07-29 16:30
能直接调用 api 吗?
点赞 回复 分享
发布于 2022-12-22 11:51 北京
这样能算通过吗
点赞 回复 分享
发布于 2023-02-28 22:51 浙江

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
291
17
分享

创作者周榜

更多
牛客网
牛客企业服务