題目描述
將一個字符中所有出現的數字前後加上符號“*”,其他字符保持不變
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("**", ""));
}
}
}