replaceall 的使用
1.replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了也就是字符串);
2.replaceAll的参数是regex或者char,即基于规则表达式的替换,比如,可以通过replaceAll(“\d”, “*”)把一个字符串所有的数字字符都换成星号; 相同点是都是全部替换,即把源字符串中的某一字符或字符串全部换成指定的字符或字符串。 如果只想替换第一次出现的,可以使用replaceFirst(),这个方法也是基于规则表达式的替换,但与replaceAll()不同的时,只替换第一次出现的字符串;
int t;
String strTmp = new String("BBYY");
strTmp = strTmp.replaceAll ("\\D", "Y");
System.out.println(strTmp);
strTmp = strTmp.replaceAll ("Y", "N");
System.out.println(strTmp);
strTmp = strTmp.replace("N", "C");
System.out.println(strTmp);
strTmp = strTmp.replace("\\D", "");
System.out.println(strTmp);
strTmp = strTmp.replaceFirst("\\D", "");
System.out.println(strTmp);
t = strTmp.length();
System.out.println(t);
strTmp = strTmp.replaceAll("\\D", "");
System.out.println(strTmp);
t = strTmp.length();
System.out.println(t);
执行效果如下: 1,注意留意最后两个输出 strTmp = strTmp.replaceFirst(“\D”, “”); System.out.println(strTmp); 只是将第一个字符用 空白代替实际输出只有三个字符,strTmp长度是三字节, strTmp = strTmp.replaceAll(“\D”, “”); System.out.println(strTmp); 输出为空,字节长度为0,相当于字符长度缩短了。 在进行replaceAll替换
2,String strTmp1 = strTmp.replaceAll (“Y”, “N”); 可以理解成开辟新的空间将替换完成的数组放在新空间中,原数组保留不变 而strTmp = strTmp.replaceAll (“Y”, “N”); 可以理解成将替换产生的新数组代替原数组
3,另外需要注意的是: String strTmp = new String(“ababcc”); strTmp = strTmp.replaceAll(“abc”, “”) 此时输出结果是abc,一次替代只是将中间字符串是abc的替换掉,剩下的重新组成abc,如果使用循环则最终字符串长度是0
|