如何仅从String的ArrayList中获取整数数据

时间:2016-05-01 08:36:26

标签: java arraylist integer double benfords-law

我阅读了一个文本文件,并将数据放入ext_pillar:file_tree:id_rsa的{​​{1}}。

数据就像

ArrayList

我只需要将整数数据作为整数来查找整数的第一个数字。我知道如何找到第一个数字,但我不知道如何只能获取整数数据。

4 个答案:

答案 0 :(得分:1)

我假设您的ArrayList属于String类型。 replaceAll()会取出任何不是数字(0-9)

的内容
ArrayList<String> countrys = new ArrayList<String>();
countrys.add("China 12351235123");
countrys.add("Korea 123532523");
countrys.add("USA 12341235123");

for(String c:countrys){
    String number = c.replaceAll("[^0-9]", "");
    System.out.println(number);
}

答案 1 :(得分:1)

试试这个:

  // Creation of ArrayList of string
  ArrayList<String> obj = new ArrayList<String>();

  // arrayList of string
  obj.add("China 12351235123");
  obj.add("Korea 123532523");
  obj.add("USA 12341235123");


    Iterator<String> iterator = obj.iterator();
    String str;
    String[] split_str;
    long  value;
    while (iterator.hasNext()) {
        str = iterator.next().toString();
        split_str = str.split(" ");
        String split_2 = split_str[1];
        value = Long.parseLong(split_2);
        System.out.println(value);
    }

答案 2 :(得分:0)

您可以使用正如SLY建议的正则表达式,或者您可以查看列表并将对象拆分为两部分:'country'和'number'使用:

for(String s : array){
    String[] parts = s.split(" ");
    long number = Long.parseLong(parts[1]);
    System.out.println(number);
}

注意:不变量是每个元素包含两个部分,分隔符为“空格”,第二部分是数字。

答案 3 :(得分:0)

你可以使用正则表达式,并且要注意并非所有数字都可以在整数范围内......所以下面代码中的long列表

实施例

public static void main(String[] args) {
    List<Long> longList = new ArrayList<Long>();
    Pattern pattern = Pattern.compile("\\w+([0-9]+)");// regex pattern
    for (String string : listOfCountriesAndNumbers) {
        Matcher matcher = pattern.matcher(string);
        for (int i = 0; i < matcher.groupCount(); i++) {
            matcher.find();
            longList.add(Long.parseLong(matcher.group()));
        }
    }
    System.out.println(longList);
}