java怎么实现把字符串中的数字和字符分开

java怎么实现把字符串中的数字和字符分开!
比如说String s="xinwen32";
通过写两个函数分别来返回s中的xinwen字符和s中的数字32!
谢谢啦!

package com.youngmaster;

public class RegString {
public static void main(String[] args) {

String s = "sasfsadfsf12fasf45d8sfs";
System.out.println("数字:" + s.replaceAll("[a-zA-Z]", ""));
System.out.println("字符:" + s.replaceAll("[0-9]", ""));
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-08-13
可以用正则表达式分开,:
public class A
{
public static void main(String[] args)
{
A a = new A();
String s="sasfsadfsf12fasf45d8sfs";
System.out.println("数字 = >"+a.getSz(s));
System.out.println("字符 = >"+a.getZf(s));
}

private String getSz(String str){
return str.replaceAll("[a-zA-Z]","");
}

private String getZf(String str){
return str.replaceAll("[0-9]","");
}

}
第2个回答  2009-08-13
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public abstract class TestString {
public static void main(String[] args) {
String s = "xinwen32";
StringBuffer sbuffer = new StringBuffer();
StringBuffer nbuffer = new StringBuffer();
try {
Pattern pattern = Pattern.compile("[0-9]");// [A-Z]");
Matcher m = pattern.matcher(s);
System.out.println(m.toString() + "--");
char[] chars = s.toCharArray();
String str = null;
for (char c : chars) {
str = String.valueOf(c);
m = pattern.matcher(str);
if (m.matches()) {
nbuffer.append(str);
} else {
sbuffer.append(str);
}
}
System.out.println(s + "---getStr---" + sbuffer.toString() + "--getNum---" + nbuffer);
} catch (Exception ioEx) {
ioEx.printStackTrace();
}

}

}

大家的速度好快,我刚刚写完。
试试。
第3个回答  2009-08-13
不需要写函数.
1.获得xinwen:s.replaceAll("\\d", "")
2.获得32:s.replaceAll("\\D", "")
你可以打印出来看看就知道了!
第4个回答  2009-08-13
字符一个一个取出来比较一下ASCII码值不就可以了?数字0-9的ASCII码值是48-57。不是这个范围内的说名就不是数字了呗
相似回答