C语言实验——保留整数
Time Limit: 1000 ms
Memory Limit: 65536 KiB
Problem Description
输入一个字符串str1,把其中的连续非数字的字符子串换成一个‘*’,存入字符数组str2 中,所有数字字符也必须依次存入 str2 中。输出str2。
Input
输入为一行字符串str1,其中可能包含空格。字符串长度不超过80个字符。
Output
输出处理好的字符串str2。
Sample Input
$Ts!47&*s456 a23* +B9k
Sample Output
*47*456*23*9*
Code
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
String ss = s.replaceAll("\\D", "*");
String sss = ss.replaceAll("[*]+", "*");
for (int i = 0; i < sss.length(); i++) {
System.out.print(sss.charAt(i));
}
sc.close();
}
}
反思:
Java的字符串类练习。最偷懒方法,直接先把所有非数字字符替换成*,得到一个有重复*和数字的字符串ss,再把ss中所有1个以上的*换成1个*,得到sss,完成~