Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何仅从字符串的ArrayList中提取整数数据_Java_Arraylist_Integer_Double_Benfords Law - Fatal编程技术网

Java 如何仅从字符串的ArrayList中提取整数数据

Java 如何仅从字符串的ArrayList中提取整数数据,java,arraylist,integer,double,benfords-law,Java,Arraylist,Integer,Double,Benfords Law,我读取一个文本文件并将数据放入String的ArrayList 数据如下 China 12351235123 Korea 123532523 USA 12341235123 我只需要这些整数数据作为一个整数来查找整数的第一位。我知道如何找到第一个数字,但我不知道如何只提取整数数据。我假设您的ArrayList类型为StringreplaceAll()将删除任何不是数字(0-9)的内容 ArrayList countrys=new ArrayList(); 国家添加(“中国12351235123

我读取一个文本文件并将数据放入
String
ArrayList

数据如下

China 12351235123 Korea 123532523 USA 12341235123

我只需要这些整数数据作为一个整数来查找整数的第一位。我知道如何找到第一个数字,但我不知道如何只提取整数数据。

我假设您的
ArrayList
类型为
String
replaceAll()
将删除任何不是数字(0-9)的内容

ArrayList countrys=new ArrayList();
国家添加(“中国12351235123”);
国家添加(“韩国123532523”);
国家添加(“美国12341235123”);
for(字符串c:国家){
字符串编号=c.replaceAll(“[^0-9]”,“”);
系统输出打印项次(编号);
}

您可以按照SLY的建议使用正则表达式,也可以查看列表,将对象分为两部分:“国家”和“编号”,使用:

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

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

您可以使用正则表达式,但要注意的是,并非所有数字都可以在整数范围内。。。下面的代码中有一个长的列表

例子:
publicstaticvoidmain(字符串[]args){
List longList=new ArrayList();
Pattern=Pattern.compile(“\\w+([0-9]+)”);//正则表达式模式
for(字符串:国家和数字列表){
Matcher-Matcher=pattern.Matcher(字符串);
对于(int i=0;i
试试这个:

  // 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);
    }
//创建字符串的ArrayList
ArrayList obj=新的ArrayList();
//字符串数组列表
对象添加(“中国12351235123”);
对象添加(“韩国123532523”);
对象添加(“美国12341235123”);
迭代器迭代器=obj.Iterator();
字符串str;
String[]split_str;
长期价值;
while(iterator.hasNext()){
str=iterator.next().toString();
split_str=str.split(“”);
String split_2=split_str[1];
值=Long.parseLong(拆分_2);
系统输出打印项次(值);
}

请向我们展示您迄今为止的尝试。字符串的ArrayList不接受整数。它可能是对象的数组列表。它是?或者“中国12351235123”是一个字符串?也许可以帮助您非常感谢!这可能是一种方式!我不需要那些字符串数据,但我只需要整数数据来找到它们的第一个数字。我不需要那些字符串数据,但我只需要整数数据来找到它们的第一个数字。
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);
}
  // 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);
    }