题解HJ96 | #表示数字#

表示数字

https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        String s = in.nextLine();

        StringBuilder result = new StringBuilder();

        //上一位是否是数字
        boolean last = false;

        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) >= '0' && s.charAt(i) <= '9' && !last) {
                result.append("*");
            }

            result.append(s.charAt(i));

            //后面如果还有且不是数字且当前是数字
            if (i + 1 < s.length() && (s.charAt(i + 1) < '0' || s.charAt(i + 1) > '9')
                    && s.charAt(i) >= '0' && s.charAt(i) <= '9') {
                result.append("*");
            }

            //当前是最后一位且当前是数字
            if (i == s.length() - 1 && s.charAt(i) >= '0' && s.charAt(i) <= '9') {
                result.append("*");
            }

            if (s.charAt(i) >= '0' && s.charAt(i) <= '9') {
                last = true;
            } else {
                last = false;
            }
        }

        System.out.println(result);
    }
}

感觉这道题写的好笨 完全是在打补丁

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务