首先讲一下java String中有一个方法的用法,那就是replaceAll("regex","replacement"),看一下string 的api文档
其中的意思是,将replacement替换String字符串中的regex,然后返回一个string类型。下面讲一个示例:
public void StringTest(){
String iiString="dsa";
int k=58;
iiString=iiString+k;
iiString=iiString.replace("58", "");
System.out.println(iiString);
String phoneno="13551221234";
phoneno=phoneno.replaceAll(phoneno.substring(3, 7), "****");
System.out.println(phoneno);
}
其中iistring是字符串类型,而k属于整形的,若是执行二者相加的结果应该自动转换为字符串类型的(低类型向高类型的转变)
先看一下打印结果
output:
dsa
135****1234
这里是使用后者替换前者在字符串中出现的字符
那么如何统计出来从1到1000中出现过多少个1呢?
java中提供了StringBuffer类,该类中有一个方法就是append()
我们可以将从1到1000中的每一个数字当做字符串来处理,然后得到的就是一个比较长的类似于字符串的数字了。然后用replaceall方法来替换掉里面除了1以外数字(正则表达式),如下:
StringBuffer str = new StringBuffer();
for (int i = 1; i <= 1000; i++) {
str.append(i);
}
String str2 = str.toString();
str2 = str2.replaceAll("[0|2|3|4|5|6|7|8|9]", "");
System.out.println(str2.length());
也即是用空来替换在字符串str2中出现的除1以外的所有的数字