diff --git a/src/main/java/com/zipcodewilmington/StringArrayUtils.java b/src/main/java/com/zipcodewilmington/StringArrayUtils.java index 4bcce66..2022d36 100644 --- a/src/main/java/com/zipcodewilmington/StringArrayUtils.java +++ b/src/main/java/com/zipcodewilmington/StringArrayUtils.java @@ -1,5 +1,10 @@ package com.zipcodewilmington; +import com.sun.tools.javac.util.ArrayUtils; +import com.sun.xml.internal.xsom.util.DeferedCollection; + +import java.util.*; + /** * Created by leon on 1/29/18. */ @@ -25,7 +30,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 +38,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,15 +48,29 @@ 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 hasString = false; + for (int i = 0; i < array.length; i++) { + if (array[i].equals(value)) { + hasString = true; + + } + + } + return hasString; } + /** * @param array of String objects * @return an array with identical contents in reverse order */ // TODO public static String[] reverse(String[] array) { - return null; + ArrayList arrList = new ArrayList(Arrays.asList(array)); + Collections.reverse(arrList); + + + array = arrList.toArray(new String[arrList.size()]); + return array; } /** @@ -58,7 +78,14 @@ public static String[] reverse(String[] array) { * @return true if the order of the array is the same backwards and forwards */ // TODO public static boolean isPalindromic(String[] array) { - return false; + boolean isPal = true; + for (int i = 0; i < array.length / 2; i++) { + if (array[i] == array[array.length - (i + 1)]) { + } else { + isPal = false; + } + } + return isPal; } /** @@ -66,8 +93,29 @@ 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 str = Arrays.toString(array); + boolean[] alphabetList = new boolean[26]; + + + int index = 0; + int verifier = 1; + String str2 = str.toUpperCase(); + for (int i = 0; i < str2.length(); i++) { + if (str2.charAt(i) >= 'A' && str2.charAt(i) <= 'Z') { + index = str2.charAt(i) - 'A'; + } + alphabetList[index] = true; + } + for (int i = 0; i <= 25; i++) { + if (alphabetList[i] == false) { + verifier = 0;} + } + return verifier == 1; + } + + + + /** * @param array array of String objects @@ -75,16 +123,28 @@ public static boolean isPangramic(String[] array) { * @return number of occurrences the specified `value` has occurred */ // TODO public static int getNumberOfOccurrences(String[] array, String value) { - return 0; + int count = 0; + for (String s : array) { + if (s.equals(value)) + count++; + } + return count; } + /** * @param array array of String objects * @param valueToRemove value to remove from array * @return array with identical contents excluding values of `value` */ // TODO public static String[] removeValue(String[] array, String valueToRemove) { - return null; + + ArrayList arrList = new ArrayList(Arrays.asList(array)); + for (int i = 0; i < arrList.size(); i++) + if (arrList.get(i).equals(valueToRemove)) { + arrList.remove(arrList.get(i)); + } + return arrList.toArray(new String[arrList.size()]); } /** @@ -92,7 +152,16 @@ 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; + + + ArrayList arrList = new ArrayList(); + arrList.add(array[0]); + + for (int i = 1; i < array.length; i++) + if (array[i] != array[i-1]) { + arrList.add(array[i]); + } + return arrList.toArray(new String[arrList.size()]); } /** @@ -100,8 +169,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) { - return null; - } + String catt = ""; + String temp = array[0]; + for (int i = 0; i < array.length; i++) { + if (temp == array[i]) { + catt += array[i]; + } else { + temp = array[i]; + catt += " " + temp; + } + } + String[] arr = catt.split(" "); + return arr; + } } + +