遍历字符串,遇到非数字字符时直接输出,遇到数字字符时,一直循环到下一个非数字字符,将找到的所有数字字符按顺序合并输出,但前后要添加上一个*号。while循环比起for循环更好,因为循环变量的控制更明了,更清晰。
运行时间:13ms超过94.18% 用Java提交的代码
占用内存:9644KB超过87.75%用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 s = br.readLine();
StringBuffer sb = new StringBuffer();
int pos = 0;
while (pos < s.length()) {
if (!Character.isDigit(s.charAt(pos))) {
sb.append(s.charAt(pos));
pos++;
} else {
int start = pos;
pos++;
while (pos < s.length() && Character.isDigit(s.charAt(pos))) {
pos++;
}
sb.append('*').append(s.substring(start, pos)).append('*');
}
}
System.out.println(sb.toString());
}
}

京公网安备 11010502036488号