2014-12-13 30 views
-1

嗨数值我有是有字符串和数值我需要从it.How重新获取数值检索列表<String>在java中

public void printNumericValue(){ 
    ArrayList<String> arrayList=new ArrayList<String>(); 
     arrayList.add("java"); 
     arrayList.add("1"); 
     arrayList.add("vava"); 
     arrayList.add("2"); 
     arrayList.add("javadd"); 
     arrayList.add("122"); 
     arrayList.add("vavaja"); 
     arrayList.add("20784"); 


} 
+1

'的Integer.parseInt(arrayList.get(指数))'用..抓 – dsharew 2014-12-13 15:32:18

回答

0

您可以使用只提取数值列表Integer.parseInt但要记住,这个方法可以抛出不是有效数字的字符串例外,牢记这一点,你可以创建一个这样

static List<Integer> extractInteger(List<String> input) { 
     List<Integer> output = new ArrayList<>(); 

     for (String candidate : input) { 
      try { 
       output.add(Integer.parseInt(candidate)); 
      } catch (NumberFormatException e) { 

      } 
     } 

     return output; 
    } 

或者在java8你可以做

的方法10
List<Integer> output = new ArrayList<>(); 
arrayList.stream().forEach(new Consumer<String>() { 
      @Override 
      public void accept(String candidate) { 
       try { 
        output.add(Integer.parseInt(candidate)); 
       } catch (Exception e) { 
       } 
      } 
     }); 
0

您可以尝试解析这些值。例如: -

List<String> arrayList = // ArrayList from the OP 
List<Integer> result = new ArrayList<>(); 

for (String s : arrayList) { 
    try { 
     result.add(Integer.parseInt(s)); 
    } catch (NumberFormatException e) { 
     // A string which doesn't represent a number 
    } 
} 
0

解决方案,而在尝试使用尝试捕捉

for (String string : arrayList) { 
     char[] cs = string.toCharArray(); 
     boolean isnumeric = false; 
     for (char c : cs) { 
      if (c >= 'a' && c <= 'z') { 
       isnumeric = false; 
       break; 
      } else { 
       isnumeric = true; 
       break; 
      } 
     } 
     if (isnumeric) { 
      System.out.println(string); 
     } 

    }