/** * Created by leon on 1/29/18. */ import java.util.Collections; public class StringArrayUtils { /** * @param array array of String objects * @return first element of specified array */ // TODO public static String getFirstElement(String[] array) { String firstElement = array[0]; return firstElement; } /** * @param array array of String objects * @return second element in specified array */ public static String getSecondElement(String[] array) { String secondElement = array[1]; return secondElement; } /** * @param array array of String objects * @return last element in specified array */ // TODO public static String getLastElement(String[] array) { String lastElement = array[array.length-1]; return lastElement; } /** * @param array array of String objects * @return second to last element in specified array */ // TODO public static String getSecondToLastElement(String[] array) { String secondToLast = array[array.length-2]; return secondToLast; } /** * @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 contains = false; for (int i = 0; i < array.length; i++) { if (array[i].equalsIgnoreCase(value)) { contains = true; } } return contains; } /** * @param array of String objects * @return an array with identical contents in reverse order */ // TODO public static String[] reverse(String[] array) { String temp; for (int i = 0; i <= array.length/2; i++) { temp = array[i]; array[i] = array[array.length -1 -i]; array[array.length -1 -i] = temp; } return array; } /** * @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 palindrome = false; for (int i = 0; i <= array.length/2; i++) { if (array[i] == array[array.length -1 -i]) { palindrome = true; } } return palindrome; } /** * @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) { boolean pangram = false; StringBuilder build = new StringBuilder(); for (String s : array){ build.append(s); } String ofArr = ""; ofArr = build.toString(); for (char a = 'A'; a <= 'Z'; a++) { if ((ofArr.indexOf(a) < 0) && (ofArr.indexOf((char)(a + 32)) < 0)) { pangram = false; } else { pangram = true; } } return pangram; } /** * @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 count = 0; for (int i = 0; i < array.length; i++) { if (array[i] == 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) { int index = 0; int count = getNumberOfOccurrences(array, valueToRemove); String [] newArr = new String [array.length - count] ; for (int i = 0; i < array.length; i++) { if (array[i] != valueToRemove) { newArr[index] = array[i]; index++; } } return newArr; } /** * @param array array of chars * @return array of Strings with consecutive duplicates removes */ // TODO public static String[] removeConsecutiveDuplicates(String[] array) { String last = null; int index = 0; int count = 0; for (int i = 0; i < array.length - 1; i++) { if (array[i].equals(array[i + 1])) { count++; } } String [] newArr = new String [array.length - count]; for (int i = 0; i < array.length; i++) { if (!array[i].equals(last)){ newArr[index] = array[i]; last = array[i]; index++; } } return newArr; } /** * @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) { int getCounting = getCount(array); String [] savedArr = new String [array.length - getCounting]; String last = array[0]; savedArr[0] = array[0]; int index = 0; for (int i = 1; i < array.length; i++) { if (array[i].equals(last)) { savedArr[index] += array[i]; } else { index++; savedArr[index] = array[i]; last = array[i]; } } return savedArr; } private static int getCount (String[] array){ int count = 0; for (int i = 0; i < array.length - 1; i++) { if (array[i].equals(array[i + 1])) { count++; } } return count; } }