一、题目描述
将一个字符串中所有的整数前后加上符号“*”,其他字符保持不变。连续的数字视为一个整数。
数据范围:字符串长度满足1≤n≤100 。
二、输入描述
输入一个字符串。
三、输出描述
字符中所有出现的数字前后加上符号“*”,其他字符保持不变。
四、解题思路
- 读取输入,将字符串存储在变量pInStr中;
- 创建一个StringBuilder对象res用于存储结果;
- 遍历字符串pInStr的每个字符,判断是否为数字;
- 如果当前字符是数字,则在res中添加字符’*';
- 接着,将连续的数字添加到res中,直到遇到非数字字符为止;
- 最后,在res中添加字符’*';
- 如果当前字符不是数字,则直接将其添加到res中;
- 将res转换为字符串并返回作为结果;
五、Java算法源码
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) {
System.out.println(markNum(sc.nextLine()));
}
}
private static String markNum(String pInStr) {
StringBuilder res = new StringBuilder();
for (int i = 0; i < pInStr.length(); ) {
if (pInStr.charAt(i) >= '0' && pInStr.charAt(i) <= '9') {
res.append('*');
while (i < pInStr.length() && pInStr.charAt(i) >= '0' && pInStr.charAt(i) <= '9') {
res.append(pInStr.charAt(i++));
}
res.append('*');
} else {
res.append(pInStr.charAt(i++));
}
}
return res.toString();
}
六、效果展示
🏆下一篇:华为OD机试真题 Java 实现【基站维修工程师】【2023Q1 200分】,附详细解题思路
🏆本文收录于,华为OD机试(JAVA)(2022&2023)
本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。