关于String的replaceAll方法???
在用正则表达式时,我写了下面的这段代码
public class TryDotRegEx {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "60.30.8.8 ";
str=str.replaceAll( "(^|\\.)(\\d)(\\.|$) ", "$100$2$3 ");
str=str.replaceAll( "(^|\\.)(\\d{2})(\\.|$) ", "$10$2$3 ");
System.out.println(str);
}
}
想用它来把那个str中的非三位数以补零的方式改为三位,如将 "60.30.8.8 "替换为 "060.030.008.008 ",可当运行时上面的那段程序时,它只对匹配到的第一个数进行替换,而后面的就不再替换了,即它只把60替换为060了,而后面的30就一点也没处理,我想问下这里是replaceAll呀,怎么只替换第一个呢?
请高手帮俺看看,谢谢!!!!!
------解决方案--------------------用NumberFormat来做
------解决方案--------------------因为你第一次匹配就把数字后面的 ". "给取走了,剩下当然不能匹配你的要求了
------解决方案--------------------str=str.replaceAll( "\\b(\\d{2})\\b ", "0$1 ").replaceAll( "\\b(\\d)\\b ", "00$1 ");