import java.util.Arrays; /** * Created by leon on 1/29/18. */ public class StringArrayUtils { /** * @param array array of String objects * @return first element of specified array */ // TODO public static String getFirstElement(String[] array) { return array[0]; } /** * @param array array of String objects * @return second element in specified array */ public static String getSecondElement(String[] array) { return array[1]; } /** * @param array array of String objects * @return last element in specified array */ // TODO public static String getLastElement(String[] array) { return array[array.length-1]; } /** * @param array array of String objects * @return second to last element in specified array */ // TODO public static String getSecondToLastElement(String[] array) { return array[array.length-2]; } /** * @param array array of String objects * @param value value to check array for * @return true if the array contains the specified `value` */ // TODO public static boolean contains(String[] array, String value) { boolean output = false; for (String test: array){ if (test.equals(value)){ output = true; break; } } return output; } /** * @param array of String objects * @return an array with identical contents in reverse order */ // TODO public static String[] reverse(String[] array) { String[] newArray = new String[array.length]; for (int start = 0; start < array.length; start++){ newArray[start] = array[array.length-start-1]; } return newArray; } /** * @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) { boolean output = false; String[] reverseArr = new String[array.length]; reverseArr = reverse(array); if (Arrays.equals(reverseArr, array)){ output = true; } return output; } /** * @param array array of String objects * @return true if each letter in the alphabet has been used in the array */ // TODO public static boolean isPangramic(String[] array) { String[] arr = makeSplitStringArray(array); boolean isPang = containsLetter(arr); return isPang; } public static boolean containsLetter(String[] array){ boolean doesContain = true; String[] alph = new String[]{"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}; for (String check: alph){ doesContain = contains(array, check); if(doesContain == false){ break; } } return doesContain; } public static String[] makeSplitStringArray(String[] array){ StringBuilder fullString = new StringBuilder(); for(String s : array) { fullString.append(s); } String str = fullString.toString().toLowerCase(); String[] individualLetters = str.split(""); return individualLetters; } /** * @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) { int numOfOcc = 0; for (String element: array){ if (element.equals(value)){ numOfOcc++; } } return numOfOcc; } /** * @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) { int howManyToDelete = getNumberOfOccurrences(array, valueToRemove); String[] revisedArray = new String[array.length-howManyToDelete]; int index = 0; for(String element: array){ if(element != valueToRemove){ revisedArray[index] = element; index++; } } return revisedArray; } public static String[] sortArray(String[] array){ String[] sorted = new String[array.length]; Arrays.sort(sorted); return sorted; } /** * @param array array of chars * @return array of Strings with consecutive duplicates removes */ // TODO public static String[] removeConsecutiveDuplicates(String[] array) { int dupes = countDuplicates(array); String[] revisedArr = new String[array.length-dupes]; int j = 0; for(int i = 0; i < array.length-1; i++){ if (array[i]!=(array[i+1])){ revisedArr[j] = array[i]; j++; } } revisedArr[revisedArr.length-1]=array[array.length-1]; return revisedArr; } public static int countDuplicates(String[] array){ String[] newArray = array; int counter = 0; for(int i = 0; i < newArray.length-1; i++){ if (newArray[i].equals(newArray[i+1])){ counter++; } } return counter; } /** * @param array array of chars * @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; } }