import java.util.*; /** * 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) { String lastStr = array[array.length - 1]; return lastStr; } /** * @param array array of String objects * @return second to last element in specified array */ // TODO public static String getSecondToLastElement(String[] array) { String lastStr = array[array.length - 2]; return lastStr; } /** * @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) { for (int i = 0; i < array.length; i++){ if (array[i] == value) { String result = array[i]; } return true; } return false; } /** * @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 - i - 1]; array[array.length - i - 1] = 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) { int i1 = 0; int i2 = array.length - 1; while (i2 > i1) { if (array[i1] != array[i2]) { return false; } ++i1; --i2; } return true; } /** * @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 bool = true; for (char letter = 'a'; letter <= 'z'; letter++){ boolean bool2 = false; for (int i = 0; i < array.length; i++){ if (array[i].toLowerCase().contains(Character.toString(letter))){ bool2 = true; } } if (!bool2) { bool = false; } } return bool; } /** * @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 word : array) { if (value.equals(word)){ 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 strArr = new ArrayList (Arrays.asList(array)); strArr.remove(valueToRemove); String[] newArr = strArr.toArray(new String[strArr.size()]); return newArr; } /** * @param array array of chars * @return array of Strings with consecutive duplicates removes */ // TODO public static String[] removeConsecutiveDuplicates(String[] array) { int duplicate = 0; int counter = 0; for (int i = 0; i < array.length - 1 ; i++){ if (array[i].equals(array[i+1])){ counter++; } } String[] newArr = new String[array.length - counter]; String str = null; for (int i = 0; i < array.length; i++){ if(!array[i].equals(str)){ newArr[duplicate] = array[i]; str = array[i]; duplicate++; } } 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 counter = getCounter(array); String[] result = new String[array.length - counter]; String last = array[0]; result[0] = array[0]; int index = 0; for (int i = 1; i < array.length; i++){ if (array[i].equals(last)){ result[index] += array[i]; last = array[i]; } else { index++; result[index] = array[i]; last = array[i]; } } return result; } public static int getCounter(String[] array){ int counter = 0; for(int i = 0; i < array.length - 1; i++){ if(array[i].equals(array[i+1])){ counter++; } } return counter; } }