日期:2014-05-20  浏览次数:20609 次

请问怎么提取字符串中的中文和数字?
比如一个字符串 "sjkjlfdks你好as!kj556asd <hjkd> x "

我要提取里面的 "你好 "和 "556 "

------解决方案--------------------
Pattern pcn=Pattern.compile( "[\u4e00-\u9fa5]+ ");
Pattern pd = Pattern.compile( "\\d+ ");
String str= "sjkjlfdks你好as!kj556asd <hjkd> x ";
Matcher m = pcn.matcher(str);
if(m.find()){
System.out.println( "中文: "+m.group());
}

m = pd.matcher(str);
if(m.find()){
System.out.println( "数字: "+m.group());
}
------解决方案--------------------
String str= "sjkjlfdks你好as!kj556asd <hjkd> x ";//要被查找的字符串
String str1= "你好 ";//你要提取的字符串
StringBuffer sb =new StringBuffer();

int c= str.indexOf(str1);
System.out.println(str.substring(c, str1.length()));
for(int i=0 ;i <str.length();i++){
char ch=str.charAt(i);
for(int m=0;m <10;m++){
String str1=String.valueOf(m);
if(str1.equals(String.valueOf(ch))) sb.append(ch);
}
}
System.out.println(sb);
要是字符串中有多个数字字符串像 "1111你好1111 "
区分开来输出的话,就在加if判断。

不知道这个对你有没有帮助!