2016-05-01 61 views
-2

我读取一个文本文件并将数据放入StringArrayList如何从字符串ArrayList中只拾取整数数据

的数据是一样

China 12351235123 Korea 123532523 USA 12341235123 

我只需要那些整数数据作为一个整数找到整数的第一位。我知道如何找到第一个数字,但我不知道如何只能拾取整数数据。

+2

请告诉我们你到目前为止试过的东西。 – TDG

+0

String的ArrayList将不接受整数。它可能是对象的ArrayList。是吗 ?或者“中国12351235123”是单个字符串? –

+0

也许[This](http://stackoverflow.com/questions/1903252/extract-integer-part-in-string)可以帮助 –

回答

1

我假设你的ArrayListString类型。 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); 
} 
+0

非常感谢!这可能是一种方式! – Nakseung

+0

我不需要这些字符串数据,但我只需要整数数据来查找它们的第一个数字。 – Nakseung

0

您可以使用正则表达式作为SLY建议,或者你可以去超过你的清单,拆分对象分为两个部分:“国家”和“编号”用:

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

:不变的是,每个元件包含两个部分与所述分隔符“空白”,而第二部分是一个数字。

+0

我不需要那些字符串数据,但我只需要整数数据来查找它们的第一个数字。 – Nakseung

0

您可以在代码中使用正则表达式和将要小心,不是所有的数字可以在整数的范围......所以长材列表下面

例子:

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); 
} 
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); 
    }