From 78a84a44520d7c9734ba7c6f4c9fbb5fd39a9d9e Mon Sep 17 00:00:00 2001 From: Manny Date: Thu, 1 Jul 2021 20:48:01 -0400 Subject: [PATCH 1/3] Saving progress --- .../zipcodewilmington/StringArrayUtils.java | 79 +++++++++++++++++-- 1 file changed, 71 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/StringArrayUtils.java b/src/main/java/com/zipcodewilmington/StringArrayUtils.java index 4bcce66..b001517 100644 --- a/src/main/java/com/zipcodewilmington/StringArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/StringArrayUtils.java @@ -1,5 +1,12 @@ package com.zipcodewilmington; +import com.sun.xml.internal.fastinfoset.util.StringArray; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + /** * Created by leon on 1/29/18. */ @@ -25,7 +32,7 @@ public static String getSecondElement(String[] array) { * @return last element in specified array */ // TODO public static String getLastElement(String[] array) { - return null; + return array[array.length - 1]; } /** @@ -33,7 +40,8 @@ public static String getLastElement(String[] array) { * @return second to last element in specified array */ // TODO public static String getSecondToLastElement(String[] array) { - return null; + + return array[array.length - 2]; } /** @@ -42,23 +50,47 @@ public static String getSecondToLastElement(String[] array) { * @return true if the array contains the specified `value` */ // TODO public static boolean contains(String[] array, String value) { - return false; + boolean checker = false; + for (String arrayValue : array) { + if (arrayValue == value) { + checker = true; + break; + } + } + return checker; } + /** * @param array of String objects * @return an array with identical contents in reverse order */ // TODO public static String[] reverse(String[] array) { - return null; - } + String[] reverseArray = new String[array.length]; + int index = 0; + for (int i = reverseArray.length - 1; i >= 0; i--) { + reverseArray[index++] = array[i]; + } + return reverseArray; + } + // List arrayList = Arrays.asList(array); + // Collections.reverse(arrayList); + // String[] reverseArrayList = arrayList.toArray(array); + // return reverseArrayList; + // } /** * @param array array of String objects * @return true if the order of the array is the same backwards and forwards */ // TODO public static boolean isPalindromic(String[] array) { - return false; + String[] reverseArray = new String[array.length]; + int index = 0; + for (int i = array.length - 1; i >= 0; i--) { + reverseArray[index++] = array[i]; + } if(!Arrays.equals(reverseArray, array)) { + return false; + } else { return true;} } /** @@ -66,16 +98,44 @@ public static boolean isPalindromic(String[] array) { * @return true if each letter in the alphabet has been used in the array */ // TODO public static boolean isPangramic(String[] array) { - return false; + String stringArray = Arrays.toString(array); + + if(stringArray.toLowerCase().length() < 26) { + return false; + } else { + for (char index = 'a'; index <= 'z'; index++) { + if (stringArray.toLowerCase().indexOf(index) < 0) { + return false; + } + } + return true; + } + } +// List arrayList = new ArrayList(); +// String string = ""; +// for (String value: arrayList) { +// if(!string.contains(value)) { +// return false; +// } +// } +// return true; +// } + /** * @param array array of String objects * @param value value to check array for * @return number of occurrences the specified `value` has occurred */ // TODO public static int getNumberOfOccurrences(String[] array, String value) { - return 0; + int tracker = 0; + for (int i = 0; i < array.length; i++) { + if(value.equals(array[i])){ + tracker++; + } + } + return tracker; } /** @@ -84,6 +144,7 @@ public static int getNumberOfOccurrences(String[] array, String value) { * @return array with identical contents excluding values of `value` */ // TODO public static String[] removeValue(String[] array, String valueToRemove) { + return null; } @@ -92,6 +153,7 @@ public static String[] removeValue(String[] array, String valueToRemove) { * @return array of Strings with consecutive duplicates removes */ // TODO public static String[] removeConsecutiveDuplicates(String[] array) { + return null; } @@ -100,6 +162,7 @@ public static String[] removeConsecutiveDuplicates(String[] array) { * @return array of Strings with each consecutive duplicate occurrence concatenated as a single string in an array of Strings */ // TODO public static String[] packConsecutiveDuplicates(String[] array) { + return null; } From 743108d3a690fd2b2ffe72de16033f98c604f9a2 Mon Sep 17 00:00:00 2001 From: Manny Date: Thu, 1 Jul 2021 23:35:45 -0400 Subject: [PATCH 2/3] saving progress on packConsecutiveDuplicates --- .../zipcodewilmington/StringArrayUtils.java | 52 ++++++++++++++----- 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/StringArrayUtils.java b/src/main/java/com/zipcodewilmington/StringArrayUtils.java index b001517..b2c2080 100644 --- a/src/main/java/com/zipcodewilmington/StringArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/StringArrayUtils.java @@ -98,14 +98,15 @@ public static boolean isPalindromic(String[] array) { * @return true if each letter in the alphabet has been used in the array */ // TODO public static boolean isPangramic(String[] array) { - String stringArray = Arrays.toString(array); + String stringArray = Arrays.toString(array); //change array to string - if(stringArray.toLowerCase().length() < 26) { - return false; + if(stringArray.toLowerCase().length() < 26) { //check to see if array length is less than number of alphabets + return false; // if so return false and no further action } else { - for (char index = 'a'; index <= 'z'; index++) { - if (stringArray.toLowerCase().indexOf(index) < 0) { - return false; + for (char index = 'a'; index <= 'z'; index++) { // iterate through characters from a - z + if (stringArray.toLowerCase().indexOf(index) < 0) { //if the index of character is less than 0 return false + // and it will fail the conditons of a panagram. + return false; //toLowerCase to make all characters even. } } return true; @@ -144,17 +145,29 @@ public static int getNumberOfOccurrences(String[] array, String value) { * @return array with identical contents excluding values of `value` */ // TODO public static String[] removeValue(String[] array, String valueToRemove) { - - return null; + List arrayList = new ArrayList(Arrays.asList(array)); //created new arrayList from string array + arrayList.remove(valueToRemove); //remove the valueToRemove from new arrayList + return array = arrayList.toArray(new String[0]); // return back to array the newList without removed value } +// String stringArray = Arrays.toString(array); +// String newString = stringArray.replaceAll(valueToRemove, ""); +// return new String[]{newString}; + //} + /** * @param array array of chars * @return array of Strings with consecutive duplicates removes */ // TODO public static String[] removeConsecutiveDuplicates(String[] array) { - - return null; + List arrayList = new ArrayList(); + arrayList.add(array[0]); //adds first value of array to newArray + for (int i = 1; i < array.length; i++) { //iterates through array starting at index 1 + if(!array[i].equals(array[i -1])) { //checks if current value is equal to previous value + arrayList.add(array[i]); //if not add that to the new arrayLst + } + } + return arrayList.toArray(new String[0]); //changing newArray to return as an Array of strings. } /** @@ -162,9 +175,24 @@ public static String[] removeConsecutiveDuplicates(String[] array) { * @return array of Strings with each consecutive duplicate occurrence concatenated as a single string in an array of Strings */ // TODO public static String[] packConsecutiveDuplicates(String[] array) { - - return null; + Arrays.sort(array); + List arrayList = new ArrayList(Arrays.asList(array)); + for (int i = 0; i < array.length - 1; i++) { + if(array[i].equals(array[i+1])) { + arrayList.add(array[i]); + } + } + return arrayList.toArray(new String[0]); } +// for (int i = 0; i < array.length - 1; i++) { +// for (int j = i+1; j < array.length; j++) { +// if(array[i].equals(array[j]) && (i != j)) { +// return array = arrayList.toArray(new String[0]); +// } +// } +// } + + } From db39cc3f99ffa37baa09198d363d691d3fb6aa52 Mon Sep 17 00:00:00 2001 From: Manny Date: Fri, 2 Jul 2021 01:24:44 -0400 Subject: [PATCH 3/3] Manny finished StringArrayUtilities --- .../zipcodewilmington/StringArrayUtils.java | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/zipcodewilmington/StringArrayUtils.java b/src/main/java/com/zipcodewilmington/StringArrayUtils.java index b2c2080..c0a1187 100644 --- a/src/main/java/com/zipcodewilmington/StringArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/StringArrayUtils.java @@ -70,9 +70,9 @@ public static String[] reverse(String[] array) { int index = 0; for (int i = reverseArray.length - 1; i >= 0; i--) { reverseArray[index++] = array[i]; - } + } return reverseArray; - } + } // List arrayList = Arrays.asList(array); // Collections.reverse(arrayList); // String[] reverseArrayList = arrayList.toArray(array); @@ -88,9 +88,12 @@ public static boolean isPalindromic(String[] array) { int index = 0; for (int i = array.length - 1; i >= 0; i--) { reverseArray[index++] = array[i]; - } if(!Arrays.equals(reverseArray, array)) { + } + if (!Arrays.equals(reverseArray, array)) { return false; - } else { return true;} + } else { + return true; + } } /** @@ -100,12 +103,12 @@ public static boolean isPalindromic(String[] array) { public static boolean isPangramic(String[] array) { String stringArray = Arrays.toString(array); //change array to string - if(stringArray.toLowerCase().length() < 26) { //check to see if array length is less than number of alphabets + if (stringArray.toLowerCase().length() < 26) { //check to see if array length is less than number of alphabets return false; // if so return false and no further action } else { for (char index = 'a'; index <= 'z'; index++) { // iterate through characters from a - z if (stringArray.toLowerCase().indexOf(index) < 0) { //if the index of character is less than 0 return false - // and it will fail the conditons of a panagram. + // and it will fail the conditons of a panagram. return false; //toLowerCase to make all characters even. } } @@ -132,7 +135,7 @@ public static boolean isPangramic(String[] array) { public static int getNumberOfOccurrences(String[] array, String value) { int tracker = 0; for (int i = 0; i < array.length; i++) { - if(value.equals(array[i])){ + if (value.equals(array[i])) { tracker++; } } @@ -163,7 +166,7 @@ public static String[] removeConsecutiveDuplicates(String[] array) { List arrayList = new ArrayList(); arrayList.add(array[0]); //adds first value of array to newArray for (int i = 1; i < array.length; i++) { //iterates through array starting at index 1 - if(!array[i].equals(array[i -1])) { //checks if current value is equal to previous value + if (!array[i].equals(array[i - 1])) { //checks if current value is equal to previous value arrayList.add(array[i]); //if not add that to the new arrayLst } } @@ -175,16 +178,21 @@ public static String[] removeConsecutiveDuplicates(String[] array) { * @return array of Strings with each consecutive duplicate occurrence concatenated as a single string in an array of Strings */ // TODO public static String[] packConsecutiveDuplicates(String[] array) { - Arrays.sort(array); - List arrayList = new ArrayList(Arrays.asList(array)); - for (int i = 0; i < array.length - 1; i++) { - if(array[i].equals(array[i+1])) { + //Arrays.sort(array); + ArrayList arrayList = new ArrayList(); + arrayList.add(array[0]); + int tracker = 0; + for (int i = 1; i < array.length; i++) { + if (arrayList.get(tracker).contains(array[i])) { + arrayList.set(tracker, (arrayList.get(tracker) + array[i])); + } else { + tracker++; arrayList.add(array[i]); } } return arrayList.toArray(new String[0]); } - +} // for (int i = 0; i < array.length - 1; i++) { // for (int j = i+1; j < array.length; j++) { @@ -195,4 +203,4 @@ public static String[] packConsecutiveDuplicates(String[] array) { // } -} +