根据题意,输出的字符串需要在数字字符左右加上''。
我们设置一个状态,为数字和非数字两种状态(boolean值)。
当我们遍历字符串的时候 :
1、当前字符为数字,读取状态,如果状态为非数字,表明上一个字符不是数字,所以当前字符为数字首位,需要在前面加个'
';如果状态为数字,则不需要添加'',只需输出。
2、当前字符为非数字,读取状态,如果状态为数字,表明上一个字符是数字,所以当前字符为非数字首位,需要在前面加个'
';如果状态为非数字,则不需要添加'*',只需输出。
程序如下:

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            String str = sc.next();
            StringBuilder sb = new StringBuilder();
            boolean isDigit = false; // 定义状态,用来存储当前字符为数字或者非数字,默认false为非数字
            for (int i = 0; i < str.length(); i++) { // 遍历字符串
                char c = str.charAt(i);
                if (Character.isDigit(c)) { // 数字
                    if (!isDigit) { // 表明上一个字符为非数字,当前字符为数字首位,需要添加'*'输出
                        sb.append('*');
                    }
                    isDigit = true;
                } else { // 非数字
                    if (isDigit) { // 表明上一个字符为数字,当前字符为非数字首位,需要添加'*'输出
                        sb.append('*');
                    }
                    isDigit = false;
                }
                sb.append(c);
            }
            if (isDigit) { // 遍历结束,需要判断最后一位是否为数字,如果是,需要添加'*'输出
                sb.append('*');
            }
            System.out.println(sb.toString());
        }
    }
}