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) { 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 result = false; for (String val : array) { if (val.equals(value)) result = true; } return result; } /** * @param array of String objects * @return an array with identical contents in reverse order */ // TODO public static String[] reverse(String[] array) { String[] reverseArray = new String[array.length]; int j = 0; for (int i = array.length - 1; i >= 0; i--) { reverseArray[j] = array[i]; j++; } return reverseArray; } /** * @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 result = true; String[] revArr = new String[array.length]; int j = 0; for (int i = array.length - 1; i >= 0; i--) { revArr[j] = array[i]; j++; } for (int i = 0; i < array.length - 1; i++) { if (!(array[i].equals(revArr[i]))) result = false; } return result; } /** * @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 alpha = "abcdefghijklmnopqrstuvwxyz"; for (int i = 0; i < array.length; i++) { String word = array[i]; for (int j = 0; j < word.length(); j++) { String letter = Character.toString(word.charAt(j)).toLowerCase(); if (alpha.indexOf(letter) != -1) { alpha = alpha.replace(letter, ""); } } } boolean result = alpha.length() <= 0; return result; } /** * @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 result = 0; for (String val : array) { if (val.equals(value)) result += 1; } return result; } /** * @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++; } String[] newArr = new String[array.length - count]; int j = 0; for (int i = 0; i < array.length; i++) { if (!array[i].equals(valueToRemove)) { newArr[j] = array[i]; j++; } } return newArr; } /** * @param array array of chars * @return array of Strings with consecutive duplicates removes */ // TODO public static String[] removeConsecutiveDuplicates(String[] array) { 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]; newArr[newArr.length - 1] = array[array.length - 1]; int j = 0; for (int i = 0; i < array.length - 1; i++) { if (!array[i].equals(array[i + 1])) { newArr[j] = array[i]; j++; } } 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 count = 1; for (int i = 0; i < array.length - 1; i++) { System.out.println(!array[i].equals(array[i + 1])); if (!array[i].equals(array[i + 1])) count++; } String[] newArr = new String[count]; StringBuilder temp = new StringBuilder(); for (int i = array.length - 1; i >= 0; i--) { if (array[i].equals(array[i - 1])) { temp.append(array[i]); } else { temp.append(array[i]); newArr[newArr.length - 1] = temp.toString(); temp = new StringBuilder(); break; } } int j = 0; for (int i = 0; i < array.length - 1; i++) { if (array[i].equals(array[i + 1])) { temp.append(array[i]); } else { temp.append(array[i]); newArr[j] = temp.toString(); temp = new StringBuilder(); j++; } } System.out.println(Arrays.toString(newArr)); return newArr; } }