我读取一个文本文件并将数据放入String
的ArrayList
。如何从字符串ArrayList中只拾取整数数据
的数据是一样
China 12351235123 Korea 123532523 USA 12341235123
我只需要那些整数数据作为一个整数找到整数的第一位。我知道如何找到第一个数字,但我不知道如何只能拾取整数数据。
我读取一个文本文件并将数据放入String
的ArrayList
。如何从字符串ArrayList中只拾取整数数据
的数据是一样
China 12351235123 Korea 123532523 USA 12341235123
我只需要那些整数数据作为一个整数找到整数的第一位。我知道如何找到第一个数字,但我不知道如何只能拾取整数数据。
我假设你的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);
}
您可以使用正则表达式作为SLY建议,或者你可以去超过你的清单,拆分对象分为两个部分:“国家”和“编号”用:
for(String s : array){
String[] parts = s.split(" ");
long number = Long.parseLong(parts[1]);
System.out.println(number);
}
注:不变的是,每个元件包含两个部分与所述分隔符“空白”,而第二部分是一个数字。
我不需要那些字符串数据,但我只需要整数数据来查找它们的第一个数字。 – Nakseung
您可以在代码中使用正则表达式和将要小心,不是所有的数字可以在整数的范围......所以长材列表下面
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);
}
请告诉我们你到目前为止试过的东西。 – TDG
String的ArrayList将不接受整数。它可能是对象的ArrayList。是吗 ?或者“中国12351235123”是单个字符串? –
也许[This](http://stackoverflow.com/questions/1903252/extract-integer-part-in-string)可以帮助 –