牛客網華爲機試【表示數字】

題目描述

將一個字符中所有出現的數字前後加上符號“*”,其他字符保持不變

public static String MarkNum(String pInStr){
	return null;
}

注意:輸入數據可能有多行
輸入描述:
輸入一個字符串

輸出描述:
字符中所有出現的數字前後加上符號“*”,其他字符保持不變

示例
輸入

Jkdi234klowe90a3

輸出

Jkdi*234*klowe*90*a*3*

題目分析

以字符的方式遍歷該字符串,同時進行判斷,當滿足條件時,拼接到 StringBuilder 上(前後都拼接星號),否則就直接拼接該字符。

如此,最終的結果,在多個連續的數字中間會有2個星號,因此最終做個處理,將其替換爲空字符創。

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 line;
        while((line = br.readLine()) != null){
            StringBuilder sb = new StringBuilder();

            char[] chars = line.toCharArray();
            for (char aChar : chars) {
                if (aChar >= '0' && aChar <= '9') {
                    sb.append("*").append(aChar).append("*");
                } else {
                    sb.append(aChar);
                }
            }

            System.out.println(sb.toString().replace("**", ""));
        }
    }
}

結果

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章