题解 | #表示数字#
表示数字
https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String a; try { a = in.readLine(); in.close(); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException(e); } int i = 0, j = 0, l = a.length(), numCnt = 0; char[] chrAy = new char[l]; char[] transfer = new char[2 * l]; a.getChars(0, l, chrAy, 0); while (i < l) { if ((chrAy[i] - '0' | '9' - chrAy[i]) > 0) { numCnt++; if (numCnt == 1)//第一位数字前面加* transfer[j++] = '*'; transfer[j++] = chrAy[i]; if (i == l - 1)//特殊情况,最后一位是数字,后面加* transfer[j++] = '*'; } else { if (numCnt > 0) {//前面是数字,当前位不是数字,加* transfer[j++] = '*'; numCnt = 0; } transfer[j++] = chrAy[i]; } i++; } System.out.print(new String(transfer, 0, j)); } }