进制转换

进制转换

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
我来补充说明一下吧: 读入的字符串中包含十六进制的字符 '0x',而这些字符对于转换是没有意义的。因此,在调用 parseInt 方法之前需要将这两个字符截取掉,可以使用 substring() 方法完成。因为在十六进制中,每个数字需要用 4 位二进制数表示,因此字符串中第一个有效的数字位从第三个字符开始,因此需要从 s 字符串的第 2 个位置开始截取。而截取的长度可以利用字符串的 length() 方法得到。
11 回复 分享
发布于 2023-04-24 16:36 浙江
有问题,应该是这样 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 陕西
substring方法可以只输一个参数就完美了
5 回复 分享
发布于 2021-12-22 23:22
s.length()多余了
4 回复 分享
发布于 2022-04-15 23:01
牛啊,才知道转换成int是有进制入参的
3 回复 分享
发布于 2022-02-22 23:03
行吧 你这一行代码直接把我看蒙蔽了
2 回复 分享
发布于 2022-05-29 11:41
这。。。能叫算法吗
1 回复 分享
发布于 2024-06-14 16:12 江西
这样没有体现数学思想。。。
1 回复 分享
发布于 2023-03-13 18:46 上海
您在这卡bug呢(狗头)
1 回复 分享
发布于 2022-05-23 16:35
直接调用api是写算法么 ???
1 回复 分享
发布于 2022-05-21 11:42
Java.io,在哪里用到了
1 回复 分享
发布于 2022-02-28 21:06
不进行边界判断的啊?这样随意输入一个数不就报错了
点赞 回复 分享
发布于 2025-08-15 20:46 北京
回去等通知吧
点赞 回复 分享
发布于 2025-07-08 23:08 浙江
API滴神
点赞 回复 分享
发布于 2024-03-16 20:25 上海
这样能算通过吗
点赞 回复 分享
发布于 2023-02-28 22:51 浙江
能直接调用 api 吗?
点赞 回复 分享
发布于 2022-12-22 11:51 北京
为什么要截取字符串从2开始?
点赞 回复 分享
发布于 2022-07-29 16:30
为啥要s.substring(2,s.length())啊求解
点赞 回复 分享
发布于 2022-06-02 21:02
牛,Java的类和方法太多了,居然能想到用这种方法
点赞 回复 分享
发布于 2022-05-03 17:39

相关推荐

2025-12-15 14:16
门头沟学院 Java
回家当保安:发offer的时候会背调学信网,最好不要这样。 “27届 ”和“28届以下 ”公司招聘的预期是不一样的。
实习简历求拷打
点赞 评论 收藏
分享
评论
315
17
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务