1、题目描述
2、解题思路
有几个API要了解一下:
1、Long.parseLong(String s);把字符串 s 转成 Long 类型的整数;
2、Long.toHexString(long i);把 long 类型整数转成十六进行字符串;
3、str.replace(char oldChar, char newChar); 字符替换;
4、str.toUpperCase(); 把字符串 s 全部转为大写;
掌握了上面的API,下面没什么好说的了:
1、按要求把输入的十进制数字字符串 num 转成对应的十六进制字符串 s;
2、接着替换、转成大写;
3、定义一个 list 来保存 {“A”, “B”, “C”, “D”, “E”, “F”, “I”, “O”}
4、遍历 s ,只要有一个字符是不存在于 list 中的, 返回 “ERROR”;否则返回 s。
3、解题代码
class Solution {
public String toHexspeak(String num) {
String s = Long.toHexString(Long.parseLong(num)). // 十进制字符串转十进制数字,然后转成十六进制字符串
replace('1', 'I'). // 替换
replace('0', 'O'). // 替换
toUpperCase(); // 全部变为大写
List<Character> list = Arrays.asList('A', 'B', 'C', 'D', 'E', 'F', 'I', 'O');
for (int i = 0; i < s.length(); i++) {
if (!list.contains(s.charAt(i))) {
return "ERROR";
}
}
return s;
}
}