Считывание данных из файла в ArrayList
Есть определенный файл, который представляет из себя список (товар и его цена). Этот список необходимо поместить в ArrayList. Вопрос заключается в следующем: как игнорировать данные типа string(слова) из этого файла и вносить в Array лишь цену(int или т.п.).
Это мой код, не судите строго, ведь я только учусь. (На прикрепленном изображении представлено все задание целиком для большего понимания сути вопроса)
import java.io.File;
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
public class First {
public static void main(String[] args) throws Exception {
String path = "D:\\laba.txt";
File file = new File(path);
Scanner scanner = new Scanner(file);
ArrayList<String> list = new ArrayList<String>();
while (scanner.hasNextLine()) {
list.add(scanner.next());
System.out.println(scanner.nextLine());
}
scanner.close();
}
}
Ответы (2 шт):
Самый простой способ извлечь нужные данные - это использовать регулярные выражения.
Pattern pattern = Pattern.compile("[а-яА-Я]+\\s-\\s(?<price>\\d+)");
Matcher matcher = pattern.matcher(scanner.next());
if (matcher.matches()) {
int price = Integer.parseInt(matcher.group("price"));
}
Если хотите научиться работать с регулярными выражениями - используйте сайт https://regex101.com/r/mHy4Na/1
while(scanner.hasNextLine()){
int a =Integer.valueOf(scanner.nextLine().split("- ")[1]);
System.out.println(a);
}
метод split(String value) разделя строку на массив по разделители value

