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) { for(String entry: array){ if(entry.equalsIgnoreCase(value)){ 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) { String[] reverse = new String[array.length]; int j= 0; for(int i=array.length-1; i> -1; i--){ reverse[j] = array[i]; j++; } return reverse; } /** * @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) { String [] reverse = new String[array.length]; reverse = reverse(array); if(Arrays.equals(array, reverse)){ return true; } return false; } /** * @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 output = false; char [] alphabet = {'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'}; int count = 0; for(int i =0; i< array.length; i++){ for(int j =0; j< array[i].length(); j++){ for( int k = 0; k-1) && (array[i].equals(array[i-1]))){ count++; } } String[] output = new String[array.length - count]; for(int i =0; i< array.length; i++){ if((i-1>-1) && (array[i].equals(array[i-1]))){ }else{ output[entry] =array[i]; entry++; } } return output; } /** * @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 count = 0; int entry = 0; int dupes = 0; for(int i =0; i< array.length; i++){ if(((i+1< array.length) && (array[i].equals(array[i+1])))){ } else{ count++; } } String[] output = new String[count]; StringBuilder consecutive = new StringBuilder(""); for(int i =0; i< array.length; i++){ //Is the entry equal to an adjacent entry? If so apeend to consecutive if((i == array.length -1) || (entry == 0) || (i+1< array.length) && (i-1>-1) && (array[i].equals(array[i-1]) || array[i].equals(array[i+1]))){ consecutive.append(array[i]); entry++; if((i == array.length -1) || (i+1< array.length) && !(array[i].equals(array[i+1]))){ output[dupes] = consecutive.toString(); consecutive.setLength(0); dupes++; } } //If not add it to the array else{ //but make sure to add consecutive to the array first if(consecutive.length() > 0){ output[dupes] = array[i]; }else{ output[dupes] = array[i]; } dupes++; } } System.out.print(output.toString()); return output; } }