表示数字

2021-02-18  本文已影响0人  simon_kin

要优化

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

注意:本题有多组样例输入。
输入描述:
输入一个字符串

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

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 str;
        while ( (str=br.readLine())!=null ){
            StringBuilder sb = new StringBuilder();
            char[] arr = str.toCharArray();
            for (int i=0;i<arr.length;i++){
                if (isNum(arr[i])){
                    if (i==0){
                        sb.append('*');
                        sb.append(arr[i]);
                        if (!isNum((arr[i+1]))){
                            sb.append('*');
                        }
                        continue;
                    }
                    if (i==arr.length-1){
                        if (!isNum((arr[i-1]))){
                            sb.append('*');
                        }
                        sb.append(arr[i]);
                        sb.append('*');
                        continue;
                    }

                    if (!isNum((arr[i-1]))){
                        sb.append('*');
                        sb.append(arr[i]);
                    }else {
                        sb.append(arr[i]);
                    }
                    if (!isNum((arr[i+1]))){

                        sb.append('*');
                    }else {

                    }

                }else {
                    sb.append(arr[i]);
                }
            }
            System.out.println(sb.toString());
        }
    }

    public static boolean isNum(char ch){
        if (ch<='9' && ch>='0'){
            return true;
        }
        return false;
    }

}

上一篇 下一篇

猜你喜欢

热点阅读