Вчера я задал вопрос о поиске строки и, если она не найдена, то не добавляйте запись в файл .csv. Я получил ответ, и предложенный / пересмотренный код работал хорошо. Тем не менее, я добавил цену к коду, и теперь я застрял.
package sportsCardsTracker;
import java.io.*;
import java.text.*;
import java.util.*;
import java.util.stream.Collectors;
public class Test_Mark6 {
public static ArrayList<String> listingNameList;
public static ArrayList<String> pricesList;
public static void main(String[] args) throws IOException, ParseException {
listingNameList = new ArrayList();
listingNameList.add("LeBron James 2017-18 Hoops Card");
listingNameList.add("Stephen Curry Auto Patch, HOT INVESTMENTS!");
listingNameList.add("Michael Jordan 1998 Jersey Worn Card");
listingNameList.add("Char Barkley NBA Hoops Auto");
ArrayList<String> playersNamesList = new ArrayList();
playersNamesList.add("LeBron James");
playersNamesList.add("Stephen Curry");
playersNamesList.add("Michael Jordan");
playersNamesList.add("Charles Barkley");
pricesList = new ArrayList();
pricesList.add("$5");
pricesList.add("$5000");
pricesList.add("$7000");
pricesList.add("$500");
String directory = System.getProperty("user.dir");
File file = new File(directory + "/src/sportsCardsTracker/test.csv");
FileWriter fw = new FileWriter(file, false); //true to not over ride
List<String> temp = new ArrayList<>();
for (String listingNames : listingNameList) {
temp = playersNamesList.parallelStream().filter(s -> listingNames.toLowerCase().contains(s.toLowerCase())).map(s -> s).collect(Collectors.toList());
if(temp.size() > 0){
System.out.println(temp.get(0));
//fw.write(String.format("%s, %s\n", temp.get(0));
}
}
}
}
Я хотел сделать что-то вроде, если код находит имя игрока (пишется правильно) в listingNameList
, затем запишите его в файл test.csv
; если нет, то не добавляйте его. Когда я добавил к ней цену, как бы я не добавил цену, если не найду имя игрока? Откуда мне знать индекс для удаления цены? Я думал о повторном открытии (импорте) файла снова для поиска и удаления оттуда, но я чувствую, что это будет очень неэффективно.
РЕДАКТИРОВАТЬ: Я на самом деле думал о создав ArrayList, состоящий из listingNameList
и pricesList
тоже, я считаю, что это будет работать лучше, чем повторный импорт файла и его перезапись?