遍历字符串,遇到非数字字符时直接输出,遇到数字字符时,一直循环到下一个非数字字符,将找到的所有数字字符按顺序合并输出,但前后要添加上一个*号。while循环比起for循环更好,因为循环变量的控制更明了,更清晰。
运行时间:13ms超过94.18% 用Java提交的代码
占用内存:9644KB超过87.75%用Java提交的代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        StringBuffer sb = new StringBuffer();
        int pos = 0;
        while (pos < s.length()) {
            if (!Character.isDigit(s.charAt(pos))) {
                sb.append(s.charAt(pos));
                pos++;
            } else {
                int start = pos;
                pos++;
                while (pos < s.length() && Character.isDigit(s.charAt(pos))) {
                    pos++;
                }
                sb.append('*').append(s.substring(start, pos)).append('*');
            }
        }
        
        System.out.println(sb.toString());
    }
}