问题描述
Stringstr1="123gege34";String[]wa=str1.split("[a-zA-Z,]+");for(inti=0;i<wa.length;i++){str1=wa[i];System.out.println("数字"+wa[i]);}
这样弄总是感觉不大好,有啥更好的写发吗?
解决方案
解决方案二:
这样可以吗呵呵Stringtemp="22235aa33ee3399cceee0088kk";System.out.println(temp.replaceAll("[a-zA-Z]+",""));
解决方案三:
顶ls的。。lz的方法已经很方便了
解决方案四:
正则\d*匹配每group一个就append到一个StringBuffer里
解决方案五:
zhengjie
解决方案六:
for(inti=0;i<str1.length();i++){charc=str1.charAt(i);if(c<=57&&c>=48){//48和57为数字的asc码System.out.println("num"+c);}}不知道是不是你要的
解决方案七:
System.out.println(str1.replaceAll("\d",""));//取出所有字母System.out.println(str1.replaceAll("[^0-9]",""));//取出所有数字
解决方案八:
引用5楼wang514636638的回复:
for(inti=0;i<str1.length();i++){charc=str1.charAt(i);if(c<=57&&c>=48){//48和57为数字的asc码 System.out.println("num"+c);}}不知道是不是你要的
明显不对。。。。人家要连续的数字。。你这个自己打印出来看看
解决方案九:
publicclassRegexTest{publicstaticvoidmain(String[]args){Stringstr="123gege34";Patternpattern=Pattern.compile("\d+");Matcherm=pattern.matcher(str);while(m.find())System.out.println(m.group());}}
解决方案十:
LZ的字符串中除了数字和字母是否还可能有特殊字符。
解决方案十一:
引用3楼viszl的回复:
正则\d*匹配每group一个就append到一个StringBuffer里
\d*匹配数字
解决方案十二:
Strings="123kdk*&&^o473";//把不是数字的都替换成空s=s.replaceAll("\D*","");System.out.println(s);
解决方案十三:
[code=Java综合一下:两种方案:Stringtemp="22235aa33ee3399cceee0088kk";System.out.println(temp.replaceAll("[a-zA-Z]+",""));//将字符串中所有字母用空格替代for(inti=0;i<str1.length();i++){charc=str1.charAt(i);if(c<=57&&c>=48){//循环找出这个范围内的数,48和57为数字的asc码System.out.println("num"+c);}}][/code]
解决方案十四:
引用6楼tfsict2008的回复:
System.out.println(str1.replaceAll("\d",""));//取出所有字母 System.out.println(str1.replaceAll("[^0-9]",""));//取出所有数字
System.out.println(str1.replaceAll("\D",""));//取出所有数字
解决方案十五:
楼主写法本来是不错的容易读你改了可能就降低可读性!现在是可能性很重要很重要的!为这东西花费时间经历不值得,书写习惯和大家一致就好了!这样别人才好维护你的代码!呵呵把经历花在算法或技巧方面比较好!