一、题目描述

将一个字符串中所有的整数前后加上符号“*”,其他字符保持不变。连续的数字视为一个整数。

数据范围:字符串长度满足1≤n≤100 。

二、输入描述

输入一个字符串。

三、输出描述

字符中所有出现的数字前后加上符号“*”,其他字符保持不变。

四、解题思路

  1. 读取输入,将字符串存储在变量pInStr中;
  2. 创建一个StringBuilder对象res用于存储结果;
  3. 遍历字符串pInStr的每个字符,判断是否为数字;
    • 如果当前字符是数字,则在res中添加字符’*';
    • 接着,将连续的数字添加到res中,直到遇到非数字字符为止;
    • 最后,在res中添加字符’*';
    • 如果当前字符不是数字,则直接将其添加到res中;
  4. 将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 实现【表示数字】【牛客练习题】-LMLPHP


🏆下一篇:华为OD机试真题 Java 实现【基站维修工程师】【2023Q1 200分】,附详细解题思路

🏆本文收录于,华为OD机试(JAVA)(2022&2023)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

华为OD机试真题 Java 实现【表示数字】【牛客练习题】-LMLPHP

06-03 21:06