import java.util.*; import java.util.ArrayList; /** * 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) { return Arrays.asList(array).contains(value); } /** * @param array of String objects * @return an array with identical contents in reverse order */ // TODO public static String[] reverse(String[] array) { for (int i = 0; i < array.length/2; i++){ String 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 isPalindromic = true; for(int i = 0; i < array.length/2 ; i++){ if(array[i] != array[( array.length - 1 ) - i]){ isPalindromic = false; break; }; } return isPalindromic; } /** * @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) { ArrayList Chars = new ArrayList(); for(String str: array){ char[] chars = str.toCharArray(); for(char car : chars){ if(!Chars.contains(car)){ Chars.add(car); } } } return Chars.size() == 26 ? true : false; } /** * @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 counter = 0; for(String str: array){ if(str.equals(value)) { counter++; } } return counter; } /** * @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) { ArrayList strings = new ArrayList(); for(String str : array){ if(!str.equals(valueToRemove)){ strings.add(str); } } return strings.toArray(new String[strings.size()]); } /** * @param array array of chars * @return array of Strings with consecutive duplicates removes */ // TODO public static String[] removeConsecutiveDuplicates(String[] array) { ArrayList strings = new ArrayList(); String prevString = ""; for(String str: array){ if(!prevString.equals(str)){ strings.add(str); } prevString = str; } return strings.toArray(new String[strings.size()]); } /** * @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) { ArrayList strings = new ArrayList(); boolean isDuplicated; for(String str1: array){ isDuplicated = false; for(String str2: array){ if(str1 == str2){ isDuplicated = true; } } if(!isDuplicated){ strings.add(str1); } } return strings.toArray(new String[strings.size()]); } }