"love23next234csdn3423javaeye"如何从上述的字符串中提取出数字?
/**
 * 从字符串文本中获得数字
 * @param text
 * @return
 */
public static List<String> getDigit(String text) {
List<String> digitList=new ArrayList<String>();
                  //你的高见哈哈
return digitList;
}
请高手指教!

解决方案 »

  1.   

    String str = "love23next234csdn3423javaeye";
    int sum = 0;
    String str2 = "";
    for(int i = 0;i<str.length();i++){
       int j = (int)str.charAt(i);
       if((j > 47 && j < 58){
            str2 = str2 + "+" + j;
            sum += j;
       }
    }
    str2 = str2.substring(0,str2.length()-2) + "=" + sum;
    System.out.println(str2);
    具体就这个意思,没验证,直接敲在这上面的,有可能有地方不准确,呵呵 
      

  2.   

    public String getNum(String str){
    String str2="";
    str=str.trim();
    if(str != null && !"".equals(str)){
    for(int i=0;i<str.length();i++){
    if(str.charAt(i)>=48 && str.charAt(i)<=57){
    str2+=str.charAt(i);
    }
    }
    }
    return str2;

    }
    哈,最土的简单做法
      

  3.   

    String a="love23next234csdn3423javaeye";
    String regEx="[^0-9]";   
    Pattern   p   =   Pattern.compile(regEx);      
    Matcher   m   =   p.matcher(a);      
    System.out.println(   m.replaceAll("").trim());  
      

  4.   

    /**
     * 从字符串文本中获得数字
     * 
     * @param text
     * @return
     */
    public static List<String> getDigit(String text) {
    List<String> digitList = new ArrayList<String>();
    // 你的高见哈哈
    // 把不是数字的变空
    digitList.add(text.replaceAll("\\D", ""));
    return digitList;
    }
      

  5.   

    public static List<String> getDigit(String text) {
    List<String> digitList = new ArrayList<String>();
    Pattern p = Pattern.compile("[^0-9]");
    Matcher m = p.matcher(text);
    String result = m.replaceAll("");
    for (int i = 0; i < result.length(); i++) {
    digitList.add(result.substring(i, i+1));
    }
    return digitList;
    }
      

  6.   

    String s = "aba13az12bab";
    List<String> ss = new ArrayList<String>();
    for(String sss:s.replaceAll("[^0-9]", ",").split(",")){
    if (sss.length()>0)
    ss.add(sss);
    }
    System.out.print(ss);
      

  7.   

        public static List<String> getDigit(String text) {
            List<String> digitList=new ArrayList<String>();
    String s[]=text.split("\\D");
    for(int x=0;x<s.length;x++)
    {
    if(!s[x].equals(""))
    digitList.add(s[x]);
     System.out.println(s[x]);
    }
            return digitList;
        }
      

  8.   

    /**
     * 从字符串文本中获得数字
     * @param text
     * @return
     */
    public static List<Long> getDigit(String text) {
    List<Long> digitList = new ArrayList<Long>();
    Pattern p = Pattern.compile("(\\d+)");
    Matcher m = p.matcher(text);
    while (m.find()) {
    String find = m.group(1).toString();
    digitList.add(Long.valueOf(find));
    }
    return digitList;
    }
    贴贴自己最后查阅文档找出的答案
      

  9.   

    貌似这样的问题首先应该想到的应该是regular expression 吧
      

  10.   

    我面试的时候遇到这样的题目,不过还要累计出现次数最多的那个数。
    LZ的问题可以把”love23next234csdn3423javaeye“.toAarray(),
    让后遍历,将遍历的每个元素转换成Character,character有这个方法isDigit(),就可以取出字符串中的数字了,呵呵。
      

  11.   

    public static void test(){
    String str = "love23next234csdn3423javaeye";
    List list = new ArrayList();
    char[] newStr = str.toCharArray();
    for(int i = 0; i < newStr.length; i ++){
    Character c = (Character)newStr[i];
    if(c.isDigit(newStr[i])){
    list.add(c);
    }
    }
    }
      

  12.   

    public static List<Long> getDigit(String text) {
    List<Long> digitList = new ArrayList<Long>();
    String[] arr = text.split("[^\\d]+");
    for (String str : arr) {
    if (str.length() > 0)
    digitList.add(Long.valueOf(str));
    }
    return digitList;
    }
      

  13.   


    public static void main(String[] args) {
    // TODO Auto-generated method stub
    /*
     * 这个程序能选出字符串内的数字类型的字符串
     */ // 声明一个字符串,里面含有数字
    String str = "234khj455hj234kl234好看好3423/.,/.,/.,df43554";
    // 声明一个String类型的数组,并且使用循环使里面的元素是字符串0-9
    String[] array1 = new String[10];
    for (int i = 0; i <= 9; i++) {
    array1[i] = Integer.toString(i);// 直接将整型转换成字符串类型
    }
    // 声明一个整型用于保存字符串的长度
    int a = str.length();
    // 再声明一个字符串数组,用于将字符串的元素保存在此数组中
    String[] array2 = new String[a];
    for (int j = 0; j < str.length(); j++) {
    array2[j] = str.substring(j, j + 1);
    // System.out.print(array2[j]+" ");
    } // 使用循环·判断·已经将字符串保存起来的字符串数组的元素是否与包含0-9的字符串数组的元素相等 for (int k = 0; k < a; k++) {
    for (int m = 0; m < array1.length; m++) {
    // 如果相等·则说明该元素是数字··将其输出
    boolean bool = array2[k].equals(array1[m]);
    if (bool) {
    System.out.print(array2[k]);
    }
    }
    } }
    //这是我做的··可能代码有点多··但是我觉得这样很容易理解··
      

  14.   


    public static void main(String[] args) {
    // TODO Auto-generated method stub
    /*
     * 这个程序能选出字符串内的数字类型的字符串
     */ // 声明一个字符串,里面含有数字
    String str = "234khj455hj234kl234好看好3423/.,/.,/.,df43554";
    // 声明一个String类型的数组,并且使用循环使里面的元素是字符串0-9
    String[] array1 = new String[10];
    for (int i = 0; i <= 9; i++) {
    array1[i] = Integer.toString(i);// 直接将整型转换成字符串类型
    }
    // 声明一个整型用于保存字符串的长度
    int a = str.length();
    // 再声明一个字符串数组,用于将字符串的元素保存在此数组中
    String[] array2 = new String[a];
    for (int j = 0; j < str.length(); j++) {
    array2[j] = str.substring(j, j + 1);
    // System.out.print(array2[j]+" ");
    } // 使用循环·判断·已经将字符串保存起来的字符串数组的元素是否与包含0-9的字符串数组的元素相等 for (int k = 0; k < a; k++) {
    for (int m = 0; m < array1.length; m++) {
    // 如果相等·则说明该元素是数字··将其输出
    boolean bool = array2[k].equals(array1[m]);
    if (bool) {
    System.out.print(array2[k]);
    }
    }
    } }
      

  15.   

    /**
         * 从字符串文本中获得数字
         * @param text
         * @return
         */
        public static List<String> getDigit(String text) {
            List<String> digitList=new ArrayList<String>();
            Pattern p = Pattern.compile("(\\d+)");
            Matcher m = p.matcher(text);
            while(m.find()){
             String value = m.group();
             digitList.add(value);
            }
            return digitList;
        }