题解 | #表示数字#
表示数字
https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { /*public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); char[] arr = str.toCharArray(); StringBuffer sb = new StringBuffer(); //数字两边添加* for(int i=0; i<arr.length; i++){ char c = arr[i]; if(c>='0' && c<='9'){ sb.append("*"); sb.append(c); sb.append("*"); }else{ sb.append(c); } } //如果2*相连,去掉一个 for(int i=0; i<sb.length()-1; i++){ if(sb.charAt(i)=='*' && sb.charAt(i+1)=='*'){ sb.deleteCharAt(i); } } //如果*两边都为数字,则去掉该* for(int i=1; i<sb.length()-1; i++){ char c1 = sb.charAt(i-1); char c2 = sb.charAt(i); char c3 = sb.charAt(i+1); if(c1>='0' && c1<='9' && c2=='*' && c3>='0' && c3<='9'){ sb.deleteCharAt(i); } } System.out.println(sb.toString()); }*/ //输入的字符串中可能存在***** public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); char[] arr = str.toCharArray(); int len = arr.length; StringBuffer sb = new StringBuffer(); if(len == 1){ if(arr[0]>='0' && arr[0]<='9'){ sb.append("*"); sb.append(arr[0]); sb.append("*"); }else{ sb.append(arr[0]); } System.out.println(sb.toString()); return; } //首1 if(arr[0]>='0' && arr[0]<='9'){ sb.append("*"); sb.append(arr[0]); if(arr[1]<'0' || arr[1]>'9'){ sb.append("*"); } }else{ sb.append(arr[0]); } //body:数字两边添加* for(int i=1; i<arr.length-1; i++){ char c = arr[i]; if(c>='0' && c<='9'){ sb.append("*"); sb.append(c); if(arr[i+1]<'0' || arr[i+1]>'9'){ sb.append("*"); } }else{ sb.append(c); } } //如果*两边都为数字,则去掉该* for(int i=1; i<sb.length()-1; i++){ char c1 = sb.charAt(i-1); char c2 = sb.charAt(i); char c3 = sb.charAt(i+1); if(c1>='0' && c1<='9' && c2=='*' && c3>='0' && c3<='9'){ sb.deleteCharAt(i); } } //尾1 if(arr[len-1]>='0' && arr[len-1]<='9'){ if(arr[len-2]<'0' || arr[len-2]>'9'){ sb.append("*"); } sb.append(arr[len-1]); sb.append("*"); }else{ sb.append(arr[len-1]); } System.out.println(sb.toString()); } }