要优化
题目描述
将一个字符中所有的整数前后加上符号“*”,其他字符保持不变。连续的数字视为一个整数。
注意:本题有多组样例输入。
输入描述:
输入一个字符串
输出描述:
字符中所有出现的数字前后加上符号“*”,其他字符保持不变
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;
}
}