From c263076e9e3cd047079a7fdd343ebe6e2c3b3f86 Mon Sep 17 00:00:00 2001 From: sandeep Date: Mon, 23 Mar 2020 11:15:44 -0400 Subject: [PATCH 1/5] Created class Formater, Grocery --- Hurtlocker.iml | 2 +- pom.xml | 12 +++++++++ src/main/java/Formater.java | 54 +++++++++++++++++++++++++++++++++++++ src/main/java/Grocery.java | 41 ++++++++++++++++++++++++++++ src/main/java/Main.java | 32 ++++++++++++++++------ src/main/java/Mapping.java | 4 +++ 6 files changed, 136 insertions(+), 9 deletions(-) create mode 100644 src/main/java/Formater.java create mode 100644 src/main/java/Grocery.java create mode 100644 src/main/java/Mapping.java diff --git a/Hurtlocker.iml b/Hurtlocker.iml index 22967e8..674e8d1 100644 --- a/Hurtlocker.iml +++ b/Hurtlocker.iml @@ -1,6 +1,6 @@ - + diff --git a/pom.xml b/pom.xml index 39639cd..3c31de2 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,18 @@ io.zipcoder HurtLocker 1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + diff --git a/src/main/java/Formater.java b/src/main/java/Formater.java new file mode 100644 index 0000000..e237c2f --- /dev/null +++ b/src/main/java/Formater.java @@ -0,0 +1,54 @@ +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class Formater { + + ArrayList results; + + public String[] splitItems() { + + Pattern pattern = Pattern.compile("##"); + String[] items = pattern.split(replaceApples()); + return items; + } + + public String replaceApples () { + + String rText = replaceBread(); + Pattern applePattern = Pattern.compile("(apples)", Pattern.CASE_INSENSITIVE); + Matcher appleMatcher = applePattern.matcher(rText); + String appleFormat = appleMatcher.replaceAll("Apples"); + return appleFormat; + } + + public String replaceBread () { + + String rText = replaceCookies(); + Pattern breadPattern = Pattern.compile("(bread)", Pattern.CASE_INSENSITIVE); + Matcher breadMatcher = breadPattern.matcher(rText); + String breadFormat = breadMatcher.replaceAll("Bread"); + return breadFormat; + } + + public String replaceCookies () { + + String rText = replaceMilk(); + Pattern cookiePattern = Pattern.compile("(cookies)|(co0kies)", Pattern.CASE_INSENSITIVE); + Matcher cookieMatcher = cookiePattern.matcher(rText); + String cookieFormat = cookieMatcher.replaceAll("Cookies"); + return cookieFormat; + } + + public String replaceMilk () { + + String rText = Main.loadFile(); + Pattern milkPattern = Pattern.compile("(milk)", Pattern.CASE_INSENSITIVE); + Matcher milkMatcher = milkPattern.matcher(rText); + String milkFormat = milkMatcher.replaceAll("Milk"); + return milkFormat; + } +} + diff --git a/src/main/java/Grocery.java b/src/main/java/Grocery.java new file mode 100644 index 0000000..61a363c --- /dev/null +++ b/src/main/java/Grocery.java @@ -0,0 +1,41 @@ +public class Grocery { + + String name; + String price; + + + public Grocery(String name, String price) { + + this.name = name; + this.price = price; + + } + + public String getName() { + + return name; + } + + public void setName(String name) { + + this.name = name; + } + + public String getPrice() { + + return price; + } + + public void setPrice(String price) { + + this.price = price; + } + +// @Override +// public String toString() { +// +// return "Grocery{" + "name='" + name + '\'' + ", price='" + price + '\'' + '}'; +// } + + +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 632942a..1c0c400 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,17 +1,33 @@ -import org.apache.commons.io.IOUtils; +import java.io.File; import java.io.IOException; +import java.util.Scanner; public class Main { - public String readRawDataToString() throws Exception{ - ClassLoader classLoader = getClass().getClassLoader(); - String result = IOUtils.toString(classLoader.getResourceAsStream("RawData.txt")); - return result; +//public String readRawDataToString() throws Exception{ +// ClassLoader classLoader = getClass().getClassLoader(); +// String result = IOUtils.toString(classLoader.getResourceAsStream("RawData.txt")); +// return result; +// } + + public static String loadFile() { + + File file = new File("/Users/snaraya/projects/HurtLocker/src/main/resources/RawData.txt"); + StringBuilder raw = new StringBuilder(); + try (Scanner scanner = new Scanner(file)) { + while (scanner.hasNextLine()) { + String line = scanner.nextLine(); + raw.append(line); + } + } catch (IOException e) { + e.printStackTrace(); + } + return raw.toString(); } - public static void main(String[] args) throws Exception{ - String output = (new Main()).readRawDataToString(); - System.out.println(output); + public static void main(String[] args) throws Exception { +// String output = (new Main()).readRawDataToString(); +// System.out.println(output); } } diff --git a/src/main/java/Mapping.java b/src/main/java/Mapping.java new file mode 100644 index 0000000..a7163e6 --- /dev/null +++ b/src/main/java/Mapping.java @@ -0,0 +1,4 @@ +package PACKAGE_NAME; + +public class Mapping { +} From 5cfeecc2144ba91d2a43a9dc84a3840ce9232448 Mon Sep 17 00:00:00 2001 From: sandeep Date: Mon, 23 Mar 2020 13:49:31 -0400 Subject: [PATCH 2/5] Added Mapping, OutputResults and PatternFinder classes --- src/main/java/Formater.java | 12 +--- src/main/java/Main.java | 17 ++++-- src/main/java/Mapping.java | 95 ++++++++++++++++++++++++++++++- src/main/java/OutputResults.java | 82 ++++++++++++++++++++++++++ src/main/java/PatternFinder.java | 52 +++++++++++++++++ src/main/resources/RawData.txt | 36 +++++++++++- target/classes/Main.class | Bin 1162 -> 1601 bytes target/classes/RawData.txt | 36 +++++++++++- 8 files changed, 311 insertions(+), 19 deletions(-) create mode 100644 src/main/java/OutputResults.java create mode 100644 src/main/java/PatternFinder.java diff --git a/src/main/java/Formater.java b/src/main/java/Formater.java index e237c2f..0ee10a2 100644 --- a/src/main/java/Formater.java +++ b/src/main/java/Formater.java @@ -1,13 +1,8 @@ -import java.lang.reflect.Array; -import java.util.ArrayList; -import java.util.Arrays; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Formater { - ArrayList results; - public String[] splitItems() { Pattern pattern = Pattern.compile("##"); @@ -36,7 +31,7 @@ public String replaceBread () { public String replaceCookies () { String rText = replaceMilk(); - Pattern cookiePattern = Pattern.compile("(cookies)|(co0kies)", Pattern.CASE_INSENSITIVE); + Pattern cookiePattern = Pattern.compile("(cookies)|(Co0kieS)", Pattern.CASE_INSENSITIVE); Matcher cookieMatcher = cookiePattern.matcher(rText); String cookieFormat = cookieMatcher.replaceAll("Cookies"); return cookieFormat; @@ -44,11 +39,10 @@ public String replaceCookies () { public String replaceMilk () { - String rText = Main.loadFile(); - Pattern milkPattern = Pattern.compile("(milk)", Pattern.CASE_INSENSITIVE); + String rText = Main.formatedFile(); + Pattern milkPattern = Pattern.compile("(milk)|(Milk)", Pattern.CASE_INSENSITIVE); Matcher milkMatcher = milkPattern.matcher(rText); String milkFormat = milkMatcher.replaceAll("Milk"); return milkFormat; } } - diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 1c0c400..71fc69a 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,33 +1,38 @@ +import org.apache.commons.io.IOUtils; import java.io.File; import java.io.IOException; import java.util.Scanner; public class Main { -//public String readRawDataToString() throws Exception{ +// public String readRawDataToString() throws Exception{ // ClassLoader classLoader = getClass().getClassLoader(); // String result = IOUtils.toString(classLoader.getResourceAsStream("RawData.txt")); // return result; // } - public static String loadFile() { + public static String formatedFile() { File file = new File("/Users/snaraya/projects/HurtLocker/src/main/resources/RawData.txt"); - StringBuilder raw = new StringBuilder(); + StringBuilder data = new StringBuilder(); try (Scanner scanner = new Scanner(file)) { while (scanner.hasNextLine()) { String line = scanner.nextLine(); - raw.append(line); + data.append(line); } } catch (IOException e) { e.printStackTrace(); } - return raw.toString(); + return data.toString(); } - public static void main(String[] args) throws Exception { + public static void main(String[] args) { + // String output = (new Main()).readRawDataToString(); // System.out.println(output); + OutputResults printer = new OutputResults(); + printer.printAllItems(); + } } diff --git a/src/main/java/Mapping.java b/src/main/java/Mapping.java index a7163e6..13cbba2 100644 --- a/src/main/java/Mapping.java +++ b/src/main/java/Mapping.java @@ -1,4 +1,95 @@ -package PACKAGE_NAME; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.stream.Collectors; public class Mapping { -} + + PatternFinder finder = new PatternFinder(); + + public Map applesMap (){ + + Map myMap = new HashMap(); + ArrayList list = finder.createGroceryList(); + for (int i = 0; i < list.size(); i++) { + myMap = list.stream().filter(x -> x.getName().equals("Apples")).collect(Collectors.groupingBy(Grocery::getPrice, Collectors.counting())); + } + return myMap; + } + + public Map breadMap (){ + + Map myMap = new HashMap(); + ArrayList list = finder.createGroceryList(); + for (int i = 0; i < list.size(); i++) { + myMap = list.stream().filter(x -> x.getName().equals("Bread")).collect(Collectors.groupingBy(Grocery::getPrice, Collectors.counting())); + } + return myMap; + } + + public Map cookiesMap (){ + + Map myMap = new HashMap(); + ArrayList list = finder.createGroceryList(); + for (int i = 0; i < list.size(); i++) { + myMap = list.stream().filter(x -> x.getName().equals("Cookies")).collect(Collectors.groupingBy(Grocery::getPrice, Collectors.counting())); + } + return myMap; + } + + public Map milkMap (){ + + Map myMap = new HashMap(); + ArrayList list = finder.createGroceryList(); + for (int i = 0; i < list.size(); i++) { + myMap = list.stream().filter(x -> x.getName().equals("Milk")).collect(Collectors.groupingBy(Grocery::getPrice, Collectors.counting())); + } + return myMap; + } + + public Integer countApples () { + ArrayList list = finder.createGroceryList(); + Integer countApples = 0; + for (int i = 0; i < list.size(); i++) { + if(list.get(i).getName().equals("Apples")){ + countApples++; + } + } + return countApples; + } + + public Integer countBread () { + ArrayList list = finder.createGroceryList(); + Integer countBread = 0; + for (int i = 0; i < list.size(); i++) { + if(list.get(i).getName().equals("Bread")){ + countBread++; + } + } + return countBread; + } + + public Integer countCookies () { + ArrayList list = finder.createGroceryList(); + Integer countCookies = 0; + for (int i = 0; i < list.size(); i++) { + if(list.get(i).getName().equals("Cookies")){ + countCookies++; + } + } + return countCookies; + } + + public Integer countMilk () { + + ArrayList list = finder.createGroceryList(); + Integer countMilk = 0; + for (int i = 0; i < list.size(); i++) { + if(list.get(i).getName().equals("Milk")){ + countMilk++; + } + } + return countMilk; + } + +} \ No newline at end of file diff --git a/src/main/java/OutputResults.java b/src/main/java/OutputResults.java new file mode 100644 index 0000000..5679680 --- /dev/null +++ b/src/main/java/OutputResults.java @@ -0,0 +1,82 @@ +import java.util.ArrayList; +import java.util.Map; + +public class OutputResults { + + PatternFinder finder = new PatternFinder(); + Mapping mapResults = new Mapping(); + + public void printAllItems () { + + printApples(); + printBread(); + printCookies(); + printMilk(); + printErrors(); + } + + + public void printStars() { + + System.out.println(String.format("%-20s %30s", "********************", "*****************")); + } + + public void printSingleLine() { + + System.out.println(String.format("%-20s %30s", "--------------------", "-----------------")); + } + + public void printApples() { + + Map applesMap = mapResults.applesMap(); + Integer numApples = mapResults.countApples(); + ArrayList keys = new ArrayList(mapResults.applesMap().keySet()); + System.out.println(String.format("\nGrocery Item: Apples appears %d time(s)", numApples)); + printStars(); + System.out.println(String.format("Price: %s appears %d time(s)", keys.get(1), applesMap.get(keys.get(1)))); + printSingleLine(); + System.out.println(String.format("Price: %s appears %d time(s)", keys.get(0), applesMap.get(keys.get(0)))); + printSingleLine(); + } + + public void printBread() { + + Map breadMap = mapResults.breadMap(); + Integer numBreads = mapResults.countBread(); + ArrayList keys = new ArrayList(mapResults.breadMap().keySet()); + System.out.println(String.format("\nGrocery Item: Bread appears %d time(s)", numBreads)); + printStars(); + System.out.println(String.format("Price: %s appears %d time(s)", keys.get(0), breadMap.get(keys.get(0)))); + printSingleLine(); + + } + + public void printCookies() { + + Map cookiesMap = mapResults.cookiesMap(); + Integer numCookies = mapResults.countCookies(); + ArrayList keys = new ArrayList(mapResults.cookiesMap().keySet()); + System.out.println(String.format("\nGrocery Item: Cookies appears %d time(s)", numCookies)); + printStars(); + System.out.println(String.format("Price: %s appears %d time(s)", keys.get(0), cookiesMap.get(keys.get(0)))); + printSingleLine(); + } + + public void printMilk() { + + Map milkMap = mapResults.milkMap(); + Integer numMilks = mapResults.countMilk(); + ArrayList keys = new ArrayList(mapResults.milkMap().keySet()); + System.out.println(String.format("\nGrocery Item: Milk appears %d time(s)", numMilks)); + printStars(); + System.out.println(String.format("Price: %s appears %d time(s)", keys.get(1), milkMap.get(keys.get(1)))); + printSingleLine(); + System.out.println(String.format("Price: %s appears %d time(s)", keys.get(0), milkMap.get(keys.get(0)))); + printSingleLine(); + } + + public void printErrors () { + + System.out.println(String.format("\nData Errors: appears %d time(s)", finder.errors())); + } +} diff --git a/src/main/java/PatternFinder.java b/src/main/java/PatternFinder.java new file mode 100644 index 0000000..85eb3d7 --- /dev/null +++ b/src/main/java/PatternFinder.java @@ -0,0 +1,52 @@ +import java.util.ArrayList; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class PatternFinder { + + private Formater cleaner = new Formater(); + private ArrayList itemWords; + private ArrayList validData; + private ArrayList groceryObjectsList; + + + public Integer count() { + + Pattern pattern = Pattern.compile("##"); + String[] myRawData = pattern.split(Main.formatedFile()); + return myRawData.length; + } + + + public Integer errors() { + + Integer total = count(); + ArrayList valid = createGroceryList(); + return total - valid.size(); + + } + + + public ArrayList createGroceryList () { + + String[] pairs = cleaner.splitItems(); + groceryObjectsList = new ArrayList<>(); + for (int i = 0; i < pairs.length; i++) { + Pattern names = Pattern.compile("([nN][aA][mM][Ee]:)([a-zA-Z0]+)([:!;*^@])([pP][rR][iI][cC][Ee]:)(\\d\\.\\d\\d)"); + Matcher m = names.matcher(pairs[i]); + while (m.find()) { + groceryObjectsList.add(new Grocery(m.group(2), m.group(5))); + } + } + + return groceryObjectsList; + } + +// public void printResults () { +// +// ArrayList resultsToPrint = createGrocery(); +// for (int i = 0; i < resultsToPrint.size(); i++) { +// System.out.println(resultsToPrint.get(i).toString()); +// } +// } +} diff --git a/src/main/resources/RawData.txt b/src/main/resources/RawData.txt index f8c15a3..9620660 100644 --- a/src/main/resources/RawData.txt +++ b/src/main/resources/RawData.txt @@ -1 +1,35 @@ -naMe:Milk;price:3.23;type:Food;expiration:1/25/2016##naME:BreaD;price:1.23;type:Food;expiration:1/02/2016##NAMe:BrEAD;price:1.23;type:Food;expiration:2/25/2016##naMe:MiLK;price:3.23;type:Food^expiration:1/11/2016##naMe:Cookies;price:2.25;type:Food%expiration:1/25/2016##naMe:CoOkieS;price:2.25;type:Food*expiration:1/25/2016##naMe:COokIes;price:2.25;type:Food;expiration:3/22/2016##naMe:COOkieS;price:2.25;type:Food;expiration:1/25/2016##NAME:MilK;price:3.23;type:Food;expiration:1/17/2016##naMe:MilK;price:1.23;type:Food!expiration:4/25/2016##naMe:apPles;price:0.25;type:Food;expiration:1/23/2016##naMe:apPles;price:0.23;type:Food;expiration:5/02/2016##NAMe:BrEAD;price:1.23;type:Food;expiration:1/25/2016##naMe:;price:3.23;type:Food;expiration:1/04/2016##naMe:Milk;price:3.23;type:Food;expiration:1/25/2016##naME:BreaD;price:1.23;type:Food@expiration:1/02/2016##NAMe:BrEAD;price:1.23;type:Food@expiration:2/25/2016##naMe:MiLK;priCe:;type:Food;expiration:1/11/2016##naMe:Cookies;price:2.25;type:Food;expiration:1/25/2016##naMe:Co0kieS;pRice:2.25;type:Food;expiration:1/25/2016##naMe:COokIes;price:2.25;type:Food;expiration:3/22/2016##naMe:COOkieS;Price:2.25;type:Food;expiration:1/25/2016##NAME:MilK;price:3.23;type:Food;expiration:1/17/2016##naMe:MilK;priCe:;type:Food;expiration:4/25/2016##naMe:apPles;prIce:0.25;type:Food;expiration:1/23/2016##naMe:apPles;pRice:0.23;type:Food;expiration:5/02/2016##NAMe:BrEAD;price:1.23;type:Food;expiration:1/25/2016##naMe:;price:3.23;type:Food^expiration:1/04/2016## \ No newline at end of file + +naMe:apPles;price:0.25;type:Food;expiration:1/23/2016## +naMe:apPles;price:0.23;type:Food;expiration:5/02/2016## +naMe:apPles;prIce:0.25;type:Food;expiration:1/23/2016## +naMe:apPles;pRice:0.23;type:Food;expiration:5/02/2016## + +naME:BreaD;price:1.23;type:Food;expiration:1/02/2016## +NAMe:BrEAD;price:1.23;type:Food;expiration:2/25/2016## +NAMe:BrEAD;price:1.23;type:Food;expiration:1/25/2016## +naME:BreaD;price:1.23;type:Food@expiration:1/02/2016## +NAMe:BrEAD;price:1.23;type:Food@expiration:2/25/2016## +NAMe:BrEAD;price:1.23;type:Food;expiration:1/25/2016## + +naMe:Cookies;price:2.25;type:Food%expiration:1/25/2016## +naMe:CoOkieS;price:2.25;type:Food*expiration:1/25/2016## +naMe:COokIes;price:2.25;type:Food;expiration:3/22/2016## +naMe:COOkieS;price:2.25;type:Food;expiration:1/25/2016## +naMe:Cookies;price:2.25;type:Food;expiration:1/25/2016## +naMe:Co0kieS;pRice:2.25;type:Food;expiration:1/25/2016## +naMe:COokIes;price:2.25;type:Food;expiration:3/22/2016## +naMe:COOkieS;Price:2.25;type:Food;expiration:1/25/2016## + +naMe:Milk;price:3.23;type:Food;expiration:1/25/2016## +naMe:Milk;price:3.23;type:Food;expiration:1/25/2016## +NAME:MilK;price:3.23;type:Food;expiration:1/17/2016## +NAME:MilK;price:3.23;type:Food;expiration:1/17/2016## +naMe:MiLK;price:3.23;type:Food^expiration:1/11/2016## +NAME:MilK;price:3.23;type:Food;expiration:1/17/2016## +naMe:MilK;price:1.23;type:Food!expiration:4/25/2016## + +naMe:MilK;priCe:;type:Food;expiration:4/25/2016## +naMe:MiLK;priCe:;type:Food;expiration:1/11/2016## +naMe:MilK;priCe:;type:Food;expiration:4/25/2016## +naMe:;price:3.23;type:Food;expiration:1/04/2016## +naMe:;price:3.23;type:Food^expiration:1/04/2016## diff --git a/target/classes/Main.class b/target/classes/Main.class index c9d3858bc278f548c9eaabc471ed4e0ba034dcf0..7c83cfebd9e07f549b465c125045a4f270576ef9 100644 GIT binary patch literal 1601 zcmZuxT~ixX7=BK&$%gInl>j9w;z!l+k*pt7YrqPn#UdeCLa69;oI|pOEn$<{-B=uN zI@4Zw;}6h3z^&fEjLg`(Uie%54dQclBPqgOoO9l<=Y8MjJ$wH8=Z`-D%wWsF2yW>3 zG=-vp7-n_M8AvGAX9jfKRLkdTnOEusb-JZv(LgV5>$qc}A4|&eg^s%h(zv0PWgTDY zSP@9hIj$4j6o}_0HU+fBX5AL(FFCGVZtri~-iF+6P?Ih-YqGH^Jx9qMr55ZuJ~2wG z(s5@6%!f^HUj}x4$x$&wxrx#v`MtCn(%rEtf# z4XY9<87mk#99f*EwY+xcpk}uMr>U}Q55uf|XJ%D}(${4m1+o|N-D*3Hy6w@Ww-U(O z-l}Ycjgf4UOnylt86?6!`x6++eR~08He^kDJLDmAiCI8zvF|{&)L&X_2d#FnZu{*< z;4`mLX|}zZ9nsaJSS%<~OkBk%=?n>CpOJmRs`|F)TfQqj`Gd4tUh|P%3w-Nt+Y30J zJ=?Q*f6{}bOKLSQhoyv(@@Sv66{nu)J4ZsH!+ zO;l8QnJ&!6uGf65E{2H>RR1%bpOA@7jGDNQaq@kR2oql`JWcg4Fwliv+g1&7;%EA3W` z1p78|MqkD`;~^}iKb(AcwKhCiV{j^HM!x}ZLgPZCu^ia@KHkJI|8w=l!3klMYnGD5 zU2soK9z*=jLkzEQO@_)OUgg=09Pk>(DD~iVj8ns4@hib}>V7^!Y%3i!YM0Do^w!6Lb=3Gi5-hJGb) i{e!ipSgpxARWBn^06xS=lv3<$2Gi=-z^{!-wHkuaK@P+4j?n?rzK=cm^A4msp7v@O^1Q2YPqK4I&NffQ%4yU9W$8KFsDOP z#~NhTCrGOes5g0FjJdJJ%lwp-67yBGD zRnUm*4W`n!f<|aNuUsWPr_{}>+y;g)Y~UX5Yj|MbAs$giTkm{)7;AWJ;0YErEE#wT zb~UZI2F6g*@Z7))ENggaU0y9bWVyv45TSeHPy>cp*{5b$3wTTZrUq)Th# zhC7r_ecm$6ZS-mzE`KGb6a1c*kM&Ej*d!>>v+q%*R3PzD?|6V z1+=;XdAu&Aewuc0nGeR``vOuBYW7@5xHD-5?cmH2#5ev7V3cd7eDG0;THnk}T882o|E`rKFglUTzojD{?~0&=aG(+RH~Gs_&~m|*Mz zIcG7+^&I(Wdd`z^0aNs-j2pBAw8dZ0-X9^`M9%sSeYS~wxA-LC5b{)6pd2M)JfYzt UE^(J Date: Mon, 23 Mar 2020 14:18:56 -0400 Subject: [PATCH 3/5] Complete main() with readRawDataToString method --- src/main/java/Formater.java | 2 +- src/main/java/Main.java | 31 +++++++++++-------------------- src/main/java/PatternFinder.java | 11 +---------- target/classes/Main.class | Bin 1601 -> 1321 bytes 4 files changed, 13 insertions(+), 31 deletions(-) diff --git a/src/main/java/Formater.java b/src/main/java/Formater.java index 0ee10a2..e74e65d 100644 --- a/src/main/java/Formater.java +++ b/src/main/java/Formater.java @@ -39,7 +39,7 @@ public String replaceCookies () { public String replaceMilk () { - String rText = Main.formatedFile(); + String rText = Main.readRawDataToString(); Pattern milkPattern = Pattern.compile("(milk)|(Milk)", Pattern.CASE_INSENSITIVE); Matcher milkMatcher = milkPattern.matcher(rText); String milkFormat = milkMatcher.replaceAll("Milk"); diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 71fc69a..eceb681 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -5,34 +5,25 @@ public class Main { -// public String readRawDataToString() throws Exception{ -// ClassLoader classLoader = getClass().getClassLoader(); -// String result = IOUtils.toString(classLoader.getResourceAsStream("RawData.txt")); -// return result; -// } - - public static String formatedFile() { - - File file = new File("/Users/snaraya/projects/HurtLocker/src/main/resources/RawData.txt"); - StringBuilder data = new StringBuilder(); - try (Scanner scanner = new Scanner(file)) { - while (scanner.hasNextLine()) { - String line = scanner.nextLine(); - data.append(line); - } + public static String readRawDataToString() { + + String result = null; + try { + ClassLoader classLoader = Main.class.getClassLoader(); + result = IOUtils.toString(classLoader.getResourceAsStream("RawData.txt")); } catch (IOException e) { e.printStackTrace(); } - return data.toString(); + return result; } - public static void main(String[] args) { -// String output = (new Main()).readRawDataToString(); -// System.out.println(output); + public static void main(String[] args) { + System.out.println((new Main()).readRawDataToString()); OutputResults printer = new OutputResults(); printer.printAllItems(); - } } + + diff --git a/src/main/java/PatternFinder.java b/src/main/java/PatternFinder.java index 85eb3d7..2c609dc 100644 --- a/src/main/java/PatternFinder.java +++ b/src/main/java/PatternFinder.java @@ -5,15 +5,13 @@ public class PatternFinder { private Formater cleaner = new Formater(); - private ArrayList itemWords; - private ArrayList validData; private ArrayList groceryObjectsList; public Integer count() { Pattern pattern = Pattern.compile("##"); - String[] myRawData = pattern.split(Main.formatedFile()); + String[] myRawData = pattern.split(Main.readRawDataToString()); return myRawData.length; } @@ -42,11 +40,4 @@ public ArrayList createGroceryList () { return groceryObjectsList; } -// public void printResults () { -// -// ArrayList resultsToPrint = createGrocery(); -// for (int i = 0; i < resultsToPrint.size(); i++) { -// System.out.println(resultsToPrint.get(i).toString()); -// } -// } } diff --git a/target/classes/Main.class b/target/classes/Main.class index 7c83cfebd9e07f549b465c125045a4f270576ef9..7c2db096237f2a57b081b9f317cb876ea10c438d 100644 GIT binary patch literal 1321 zcmZux+fvg|6kVq+O&e1REk#=u?^-~q_xla;h6L*X;yBJYa|oFdO`A@Vdie|g!dLa7 zFgoK0_)+RQDWygGa+0&pI(x0X_D+8N{{9odMLg3nf@uw>b)3OW3Kbn^aZbm1T+nb) zhlWdOT*eh0F-)uFs*Y>8uHlA`jEZD%Q^PHRmB8okmSytUPJH zk?&;1m5o}Z6D4?$<;oy1J-KfC0(<))bG-xN1lbFnQ^%{!S08+^>}KeAiZJQhLCX!5 zya5cE}MaOaqH}Dv;Tw#Xwatj`S?4uD!7>+SC{7b|>3IMZOCR*X*#b z1p>ug4eUE&(S?7mcl()V5?T{EG8>T0mUV&2@&M0!y=~CX4wRV>dVZ}Uo6_2_E0$NU zdySwHIr2PoTs9~b?o3!Wtvc?@F>vg%Q3s>RSn;LBR`r|mF$ityjC(D*)tkC!s_Q$- zcDmCS?v94b(JBn8k{?$lqMmi#d6EP;!q0MqUo#MgP(#8s&s~L2!ROG_Cd601#4yG+ z83mIl@ZIPDFpj<4rPVMnqAq_TI>zS#v5+cyoe#3LYW+#Fz#cR`U^P}E!Y46 literal 1601 zcmZuxT~ixX7=BK&$%gInl>j9w;z!l+k*pt7YrqPn#UdeCLa69;oI|pOEn$<{-B=uN zI@4Zw;}6h3z^&fEjLg`(Uie%54dQclBPqgOoO9l<=Y8MjJ$wH8=Z`-D%wWsF2yW>3 zG=-vp7-n_M8AvGAX9jfKRLkdTnOEusb-JZv(LgV5>$qc}A4|&eg^s%h(zv0PWgTDY zSP@9hIj$4j6o}_0HU+fBX5AL(FFCGVZtri~-iF+6P?Ih-YqGH^Jx9qMr55ZuJ~2wG z(s5@6%!f^HUj}x4$x$&wxrx#v`MtCn(%rEtf# z4XY9<87mk#99f*EwY+xcpk}uMr>U}Q55uf|XJ%D}(${4m1+o|N-D*3Hy6w@Ww-U(O z-l}Ycjgf4UOnylt86?6!`x6++eR~08He^kDJLDmAiCI8zvF|{&)L&X_2d#FnZu{*< z;4`mLX|}zZ9nsaJSS%<~OkBk%=?n>CpOJmRs`|F)TfQqj`Gd4tUh|P%3w-Nt+Y30J zJ=?Q*f6{}bOKLSQhoyv(@@Sv66{nu)J4ZsH!+ zO;l8QnJ&!6uGf65E{2H>RR1%bpOA@7jGDNQaq@kR2oql`JWcg4Fwliv+g1&7;%EA3W` z1p78|MqkD`;~^}iKb(AcwKhCiV{j^HM!x}ZLgPZCu^ia@KHkJI|8w=l!3klMYnGD5 zU2soK9z*=jLkzEQO@_)OUgg=09Pk>(DD~iVj8ns4@hib}>V7^!Y%3i!YM0Do^w!6Lb=3Gi5-hJGb) i{e!ipSgpxARWBn^06xS=lv3<$2G Date: Mon, 23 Mar 2020 14:43:22 -0400 Subject: [PATCH 4/5] Minor changes to main() --- src/main/java/Main.java | 2 ++ src/main/java/Output.txt | 0 src/main/java/PatternFinder.java | 1 + src/main/resources/RawData.txt | 9 +++------ target/classes/Main.class | Bin 1321 -> 1321 bytes target/classes/RawData.txt | 9 +++------ 6 files changed, 9 insertions(+), 12 deletions(-) create mode 100644 src/main/java/Output.txt diff --git a/src/main/java/Main.java b/src/main/java/Main.java index eceb681..434e56a 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,5 +1,6 @@ import org.apache.commons.io.IOUtils; import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; import java.util.Scanner; @@ -24,6 +25,7 @@ public static void main(String[] args) { OutputResults printer = new OutputResults(); printer.printAllItems(); } + } diff --git a/src/main/java/Output.txt b/src/main/java/Output.txt new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/PatternFinder.java b/src/main/java/PatternFinder.java index 2c609dc..06b3da2 100644 --- a/src/main/java/PatternFinder.java +++ b/src/main/java/PatternFinder.java @@ -20,6 +20,7 @@ public Integer errors() { Integer total = count(); ArrayList valid = createGroceryList(); + System.out.println("\nTotal valid Grocery Items: " + valid.size()); return total - valid.size(); } diff --git a/src/main/resources/RawData.txt b/src/main/resources/RawData.txt index 9620660..c49b3dd 100644 --- a/src/main/resources/RawData.txt +++ b/src/main/resources/RawData.txt @@ -1,4 +1,3 @@ - naMe:apPles;price:0.25;type:Food;expiration:1/23/2016## naMe:apPles;price:0.23;type:Food;expiration:5/02/2016## naMe:apPles;prIce:0.25;type:Food;expiration:1/23/2016## @@ -20,16 +19,14 @@ naMe:Co0kieS;pRice:2.25;type:Food;expiration:1/25/2016## naMe:COokIes;price:2.25;type:Food;expiration:3/22/2016## naMe:COOkieS;Price:2.25;type:Food;expiration:1/25/2016## -naMe:Milk;price:3.23;type:Food;expiration:1/25/2016## -naMe:Milk;price:3.23;type:Food;expiration:1/25/2016## -NAME:MilK;price:3.23;type:Food;expiration:1/17/2016## -NAME:MilK;price:3.23;type:Food;expiration:1/17/2016## naMe:MiLK;price:3.23;type:Food^expiration:1/11/2016## NAME:MilK;price:3.23;type:Food;expiration:1/17/2016## +naMe:Milk;price:3.23;type:Food;expiration:1/25/2016## +naMe:Milk;price:3.23;type:Food;expiration:1/25/2016## naMe:MilK;price:1.23;type:Food!expiration:4/25/2016## naMe:MilK;priCe:;type:Food;expiration:4/25/2016## naMe:MiLK;priCe:;type:Food;expiration:1/11/2016## naMe:MilK;priCe:;type:Food;expiration:4/25/2016## naMe:;price:3.23;type:Food;expiration:1/04/2016## -naMe:;price:3.23;type:Food^expiration:1/04/2016## +naMe:;price:3.23;type:Food^expiration:1/04/2016## \ No newline at end of file diff --git a/target/classes/Main.class b/target/classes/Main.class index 7c2db096237f2a57b081b9f317cb876ea10c438d..f8eb0f6643e9263cc7b8f66257d7c441975272c6 100644 GIT binary patch delta 61 zcmZ3 Date: Mon, 23 Mar 2020 14:49:27 -0400 Subject: [PATCH 5/5] Final --- src/main/java/Output.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/main/java/Output.txt diff --git a/src/main/java/Output.txt b/src/main/java/Output.txt deleted file mode 100644 index e69de29..0000000