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 a = true; for(int i = 0; i <= array.length; i++){ if(array[i].equals(value)){ a = true; break; } else{ a = false; } } return a; } /** * @param array of String objects * @return an array with identical contents in reverse order */ // TODO public static String[] reverse(String[] array) { String[] result = new String[array.length]; for (int i = 0; i< array.length; i++){ result[i] = array[array.length-i-1]; } return result; } /** * @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 length = array.length; for (int index = 0; index < array.length; index++) { String start = array[index]; String end = array[--length]; if (length < index) { return true; } if (start != end) { return false; } } 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) { String arrayToString = array.toString(); String str = arrayToString.toLowerCase(); boolean answer = true; for(char c = 'a';c <= 'z'; ++c) { if(!str.contains(String.valueOf(c))) { answer = false; break; } } return answer; } /** * @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(int i = 0; i <= array.length-1; i++){ if(array[i].equals(value)){ counter = counter + 1; } } 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) { int count = 0; for(int i = 0; i < array.length; i++){ if(array[i].equals(valueToRemove)){ count = count + 1; } } String[] newArray = new String[array.length - count]; int j = 0; for(int i = 0; i < array.length; i++){ if(!array[i].equals(valueToRemove)){ newArray[j++] = array[i]; } } return newArray; } /** * @param array array of chars * @return array of Strings with consecutive duplicates removes */ // TODO public static String[] removeConsecutiveDuplicates(String[] array) { int dupCounter = 0; for(int i = 0; i < array.length-1; i++){ if(array[i].equals(array[i+1])){ dupCounter = dupCounter + 1; } } String[] newArray = new String[array.length - dupCounter]; //String [] newArray = new String[array.length]; int j = 0; for(int i = 0; i < array.length-1; i++){ if(!array[i].equals(array[i + 1])){ newArray[j++] = (array[i]); } } newArray[newArray.length-1] = array[array.length-1]; return newArray; } /** * @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) { //StringBuilder sb = new StringBuilder(); int dupCounter = 0; for(int i = 0; i < array.length-1; i++){ if(array[i].equals(array[i+1])){ dupCounter = dupCounter + 1; } } String[] newArray = new String[array.length - dupCounter]; int j = 0; for(int i = 0; i < array.length-1; i++){ if(array[i].equals(array[i+1])){ StringBuilder sb = new StringBuilder(array[i]); sb.append(array[i+1]); newArray[j++] = (array[i]); } } return newArray; } }