37.表示数字
题目描述
将一个字符中所有的整数前后加上符号“*”,其他字符保持不变。连续的数字视为一个整数。
注意:本题有多组样例输入。
输入
Jkdi234klowe90a3
5151
输出
Jkdi*234*klowe*90*a*3*
*5151*
分析
1.给字符串有数字部分前面先加一个“*”
2.然后让含有数字这部分的字符串进入一个循环
3.判断数字有多少,如果一直是数字的话,就一直拼接
4.不是数字的时候跳出循环
代码实现
import java.util.Scanner;
public class Main7 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String str = sc.next();
System.out.println(add(str));
}
}
public static String add(String str) {
StringBuilder a = new StringBuilder();
char[] c = str.toCharArray();
int i = 0;
while (i < c.length) {
if ((c[i] >= '0' && c[i] <= '9')) {
a.append("*");
a.append(c[i]);
while (++i < c.length && c[i] >= '0' && c[i] <= '9') {
a.append(c[i]);
}
a.append("*");
} else {
a.append(c[i]);
i++;
}
}
return a.toString();
}
}