テキスト ファイルを読み取り、データをArrayList
ofに入れますString
。
データはこんな感じ
China 12351235123 Korea 123532523 USA 12341235123
整数の最初の桁を見つけるために、これらの整数データを整数として必要とするだけです。最初の桁を見つける方法は知っていますが、整数データのみを取得する方法がわかりません。
テキスト ファイルを読み取り、データをArrayList
ofに入れますString
。
データはこんな感じ
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);
}
これを試して :
// 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);
}
正規表現を使用できますが、すべての数値が整数の範囲内にあるわけではないことに注意してください...そのため、以下のコードの 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);
}