您的位置:首页 > 其它

如何获取字符串的姓名

2012-06-21 10:28 169 查看
首先想到的是用正则表达式:

public static void main(String[] args) {
String str ="李维、王伟’萧烈  王和;";
if(str!=null){
//匹配中文的正则表达式->这样将会一个一个汉字的输出
Pattern p = Pattern.compile("[\\u4e00-\\u9fa5]");
Matcher m = p.matcher(str);
while (m.find()) {
for (int i = 0; i <= m.groupCount(); i++) {
System.out.println(m.group(i));
}
}
}
System.out.println("-->输出姓名:");
String strTest ="李维、王伟,小雷 , 王  和;";
//将非中文字符进行匹配->代替->然后分割。
String strH[]=strTest.replaceAll("[^\\u4e00-\\u9fa5]", ",").split(",");
for(String s:strH){
if(s.trim().length()!=0){
System.out.println(s);
}
}

}


二是用String 的substring 进行截取

public static void main(String args[]) {
String strDEF_NAME = "王宁,小哥、王宁,百度,腾讯";
String L = ",";
int begin=0;
for (int i = 0; i < strDEF_NAME.length(); i++) {
String subDEF_Name=strDEF_NAME.substring(i, i + 1);
if (subDEF_Name.equals(",")||subDEF_Name.equals("、")||subDEF_Name.equals(",")) {
L = strDEF_NAME.substring(begin, i).trim();
if(!L.equals(",")&&!L.equals("、")&&!L.equals(",")&&L.length()!=0){
System.out.println(L);
begin=i+1;
}
}
}
//为了获取最后一个名字。
int end=strDEF_NAME.length();
String strSubString=strDEF_NAME.substring(strDEF_NAME.length()-1,strDEF_NAME.length());
if(!strSubString.equals(",")||!strSubString.equals("、")||!strSubString.equals(",")){
for(int i = strDEF_NAME.length(); i >0; i--){
String subDEF_Name=strDEF_NAME.substring(i-1, i);
if (subDEF_Name.equals(",")||subDEF_Name.equals("、")||subDEF_Name.equals(",")) {
L = strDEF_NAME.substring(i, end).trim();
System.out.println(L);
break;
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: