请教高人,字符串中包含字母与数字,怎样把它们区别开来取出来啊

解决方案 »

  1.   

    两种方式,一种是转换成char数组,然后循环判断ascii码的值。
    另外一种用正则表达式筛选。
      

  2.   


    考虑字符串混合程度
    用正则一个个判断package com;import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class TestStringandData { public static void main(String[] args0) {
    String a = "fds23423"; System.out.println(isString(a));
    System.out.println(isDataTest(a));
    } // 输出字母
    public static String isString(String str) {
    StringBuffer s = new StringBuffer(str); StringBuffer s1 = new StringBuffer();
    for (int i = s.length(); i >= 1; i--) {
    if (isChar(s.substring(i - 1, i))) { s1.append(s.substring(i - 1, i)); }
    } return s1.toString();
    } // 输出数字
    public static String isDataTest(String str) {
    StringBuffer s = new StringBuffer(str); StringBuffer s1 = new StringBuffer();
    for (int i = s.length(); i >= 1; i--) {
    if (isdata(s.substring(i - 1, i))) { s1.append(s.substring(i - 1, i)); }
    } return s1.toString();
    } // 判断字母
    public static boolean isChar(String str) { String regex = "[a-zA-Z]";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(str); return matcher.find(); } // 判断数字
    public static boolean isdata(String str) { String regex = "[0-9]";
    Pattern pattern = Pattern.compile(regex);
    Matcher matcher = pattern.matcher(str); return matcher.find(); }}
    不知道大仙们还有什么更好的高效率方法