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

我读取了一个文本文件并将数据放入StringArrayList中。

数据就像

 China 12351235123 Korea 123532523 USA 12341235123 

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

我假设你的ArrayListString类型。 replaceAll()将取出任何不是数字的东西(0-9)

 ArrayList countrys = new ArrayList(); 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); } 

试试这个 :

  // Creation of ArrayList of string ArrayList obj = new ArrayList(); // arrayList of string obj.add("China 12351235123"); obj.add("Korea 123532523"); obj.add("USA 12341235123"); Iterator 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); } 

您可以使用Regex作为SLY建议,或者您可以查看列表并将对象拆分为两部分:’country’和’number’使用:

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

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

您可以使用正则表达式,并且要小心,并非所有数字都可以在整数范围内…所以下面的代码中有多个列表

例:

 public static void main(String[] args) { List longList = new ArrayList(); 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); }