题解 | #表示数字#
表示数字
https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6
import java.util.Scanner;
public class Main {
static String input;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
input = in.next();
System.out.println(replace(input));
}
private static String replace(String s) {
int length = s.length();
for (int i = 0; i < length; i++) {
char c = s.charAt(i);
if (c >= '0' && c <= '9') {
String substring = s.substring(i);
int getLong = getLong(substring);
return s.substring(0, i) + "*" + s.substring(i,
i + getLong) + "*" + replace(s.substring(i + getLong));
}
}
return s;
}
private static int getLong(String substring) {
int length = substring.length();
for (int i = 0; i < length; i++) {
char c = substring.charAt(i);
if (c > '9' || c < '0') {
return i;
}
}
return length;
}
}
解题思路:
1, 使用递归的思想, 对输入字符串进行遍历, 对找到的第一数字字符串进行替换;
2, 对余下的部分继续进行遍历替换

