用StringBuilder会简单很多

表示数字

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

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String string = scanner.next();
        char[] charArray = string.toCharArray();

        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < charArray.length; i++) {
            char c = charArray[i];
            if (Character.isDigit(c)) {
                // 数字前面增加'*'
                builder.append("*").append(c);
                // 最后一个字符结束
                if (i == charArray.length - 1){
                    builder.append("*");
                    break;
                }
                // 能到这里,证明不是最后一个字符
                for (int j = i + 1; j < charArray.length; j++) {
                    // 是数字
                    if (Character.isDigit(charArray[j])) {
                        // 最后一个字符
                        if (j == charArray.length - 1){
                            builder.append(charArray[j]).append("*");
                            // 最后一个字符是数字,已经添加,跳出循环
                            i = j;
                            break;
                        }
                        // 数字添加
                        builder.append(charArray[j]);
                       // 非数字
                    }else {
                        // 注意这里要添加不是数字的字符
                        builder.append("*").append(charArray[j]);
                        i = j;
                        break;
                    }
                }
                continue;
            }
            // 添加不是数字的字符
            builder.append(c);
        }
        System.out.println(builder);
    }
}

全部评论

相关推荐

09-14 17:23
门头沟学院
故事和酒66:所以说副业很重要,程序员干到40岁,再怎么也赚300万了,吃吃利息也够活下去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务