{"id":24021088,"url":"https://github.com/zipcodecore/stringarrayutilities","last_synced_at":"2025-10-29T04:22:13.598Z","repository":{"id":41489751,"uuid":"119443586","full_name":"ZipCodeCore/StringArrayUtilities","owner":"ZipCodeCore","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-27T16:43:18.000Z","size":31,"stargazers_count":0,"open_issues_count":58,"forks_count":177,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-15T21:15:19.790Z","etag":null,"topics":["corejava","corejava-chapter3","corejava-chapter3-section10","corejava-chapter3-section6","corejava-chapter3-section8"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZipCodeCore.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-29T21:22:58.000Z","updated_at":"2023-02-22T16:28:08.000Z","dependencies_parsed_at":"2025-01-08T12:39:01.466Z","dependency_job_id":"eea819e8-8760-4890-8282-d33788b56081","html_url":"https://github.com/ZipCodeCore/StringArrayUtilities","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZipCodeCore%2FStringArrayUtilities","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZipCodeCore%2FStringArrayUtilities/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZipCodeCore%2FStringArrayUtilities/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZipCodeCore%2FStringArrayUtilities/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZipCodeCore","download_url":"https://codeload.github.com/ZipCodeCore/StringArrayUtilities/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249153949,"owners_count":21221330,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["corejava","corejava-chapter3","corejava-chapter3-section10","corejava-chapter3-section6","corejava-chapter3-section8"],"created_at":"2025-01-08T12:38:36.453Z","updated_at":"2025-10-29T04:22:13.529Z","avatar_url":"https://github.com/ZipCodeCore.png","language":"Java","readme":"## Building Utility Class for String Array Objects\n* **Objective**\n    * Ensure [StringArrayUtilsTest](https://github.com/Zipcoder/CR-MicroLabs-Arrays-StringArrayUtilities/blob/master/src/test/java/com/zipcodewilmington/StringArrayUtilsTest.java) passes each test by completing the methods [stubbed out](https://en.wikipedia.org/wiki/Method_stub) in the class [StringArrayUtils](https://github.com/Zipcoder/CR-MicroLabs-Arrays-StringArrayUtilities/blob/master/src/main/java/com/zipcodewilmington/StringArrayUtils.java)\n        * `String getFirstElement(String[] array)`\n        * `String getSecondElement(String[] array)`\n        * `String getLastElement(String[] array)`\n        * `String getSecondToLastElement(String[] array)`\n        * `boolean contains(String[] array, String value)`\n        * `String[] reverse(String[] array)`\n        * `boolean isPalindromic(String[] array)`\n        * `boolean isPangramic(String[] array)`\n        * `int getNumberOfOccurrences(String[] array, String value)`\n        * `String[] removeValue(String[] array, String value)`\n        * `String[] removeConsecutiveDuplicates(String[] array)`\n        * `String[] packConsecutiveDuplicates(String[] array)`\n        \n* **Purpose**\n    * To establish greater familiarity with loops and arrays.\n    * To demonstrate the implementation of a [Utility class](https://www.quora.com/What-is-a-utility-class)\n    * And because arrays of Strings are everywhwere in Java. _Freakin' Everywhere_\n    \n## String Arrays\n\nJava uses String arrays to store a collection of String values. String arrays are declared and initialized in a similar way to other arrays in Java. Once declared, individual elements of the array can be accessed and manipulated using their index. String arrays are commonly used in Java programs to store and manipulate text data.\n\nYou can declare and initialize a String array in Java using the following syntax:\n\n```java\nString[] myArray = {\"value1\", \"value2\", \"value3\"};\n```\n\nThis creates a String array named myArray with three elements, each initialized with a String value. You can also declare an empty String array and initialize it later:\n\n```java\nString[] myArray = new String[3];\nmyArray[0] = \"value1\";\nmyArray[1] = \"value2\";\nmyArray[2] = \"value3\";\n```\n\nThis creates an empty String array with three elements, and then initializes each element with a String value.\n\n## What did he say about splitting strings into string arrays?\n\nYou can split a sentence into a String array in Java using the `split()` method of the String class. The `split()` method takes a delimiter as an argument and returns an array of substrings split at each occurrence of the delimiter. Here's an example:\n\n```java\nString sentence = \"The quick brown fox jumps over the lazy dog\";\nString[] words = sentence.split(\" \");\n```\n\nThis splits the sentence string at each space character and stores the resulting substrings in a String array named words. The resulting array will contain the individual words of the sentence as separate elements.\n\nHmm. That __seems important__. Maybe I should read it again.\nMaybe it's _really important_.\n\n## `String getFirstElement(String[] array)`\n* **Description**\n    * Given an array of `String` objects, return the first element of the array.\n\n### Example 1\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"quick\", \"brown\", \"fox\", \"jumps\", \"over\", \"the\", \"lazy\", \"dog\"};\n    \n    // : When\n    String outcome = StringArrayUtils.getFirstElement(array);\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n\n    ```\n    quick\n    ```\n    \n    \n### Example 2\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"brown\", \"fox\", \"jumps\", \"over\", \"the\", \"lazy\", \"dog\"};\n    \n    // : When\n    String outcome = StringArrayUtils.getFirstElement(array);\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n\n    ```\n    brown\n    ```\n\n\n### Example 3\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"fox\", \"jumps\", \"over\", \"the\", \"lazy\", \"dog\"};\n    \n    // : When\n    String outcome = StringArrayUtils.getFirstElement(array);\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n\n    ```\n    fox\n    ```\n\n\n\n## `String getSecondElement(String[] array)`\n* **Description**\n   * Given an array of `String` objects, return the first element of the array.\n\n### Example 1\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"the\", \"quick\", \"brown\", \"fox\", \"jumps\", \"over\", \"the\", \"lazy\", \"dog\"};\n    \n    // : When\n    String outcome = StringArrayUtils.getSecondElement(array);\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n\n    ```\n    quick\n    ```\n    \n    \n### Example 2\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"quick\", \"brown\", \"fox\", \"jumps\", \"over\", \"the\", \"lazy\", \"dog\"};    \n    // : When\n    String outcome = StringArrayUtils.getFirstElement(array);\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n\n    ```\n    brown\n    ```\n\n\n### Example 3\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"brown\", \"fox\", \"jumps\", \"over\", \"the\", \"lazy\", \"dog\"};    \n    // : When\n    String outcome = StringArrayUtils.getFirstElement(array);\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n\n    ```\n    fox\n    ```\n\n\n## `String getLastElement(String[] array)`\n* **Description**\n   * Given an array of `String` objects, return the last element of the array.\n\n### Example 1\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"the\", \"quick\", \"brown\", \"fox\", \"jumps\", \"over\", \"the\", \"lazy\", \"dog\"};\n    \n    // : When\n    String outcome = StringArrayUtils.getLastElement(array);\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n\n    ```\n    dog\n    ```\n    \n    \n### Example 2\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"the\", \"quick\", \"brown\", \"fox\", \"jumps\", \"over\", \"the\", \"lazy\"};\n    \n    // : When\n    String outcome = StringArrayUtils.getLastElement(array);\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n\n    ```\n    lazy\n    ```\n\n\n### Example 3\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"the\", \"quick\", \"brown\", \"fox\", \"jumps\", \"over\"};\n    \n    // : When\n    String outcome = StringArrayUtils.getLastElement(array);\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n\n    ```\n    the\n    ```\n    \n    \n    \n\n\n## `String getSecondToLastElement(String[] array)`\n* **Description**\n   * Given an array of `String` objects, return the next-to-last element of the array.\n\n### Example 1\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"the\", \"quick\", \"brown\", \"fox\", \"jumps\", \"over\", \"the\", \"lazy\", \"dog\"};\n    \n    // : When\n    String outcome = StringArrayUtils.getSecondToLastElement(array);\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n\n    ```\n    lazy\n    ```\n    \n    \n### Example 2\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"the\", \"quick\", \"brown\", \"fox\", \"jumps\", \"over\", \"lazy\"};\n    \n    // : When\n    boolean outcome = StringArrayUtils.getNextToLastElement(array);\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n\n    ```\n    over\n    ```\n\n\n### Example 3\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"the\", \"quick\", \"brown\", \"fox\", \"jumps\", \"over\"};\n    \n    // : When\n    boolean outcome = StringArrayUtils.getNextToLastElement(array);\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n\n    ```\n    jumps\n    ```\n    \n    \n    \n    \n    \n\n\n\n## `boolean contains(String[] array, String value)`\n* **Description**\n   * Given an array of `String` objects named `array` and a `String` object named `value`\u003cbr\u003ereturn true if `value` appears in `arrays`.\n\n### Example 1\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"the\", \"quick\", \"brown\", \"fox\", \"jumps\", \"over\", \"the\", \"lazy\", \"dog\"};\n    \n    // : When\n    boolean outcome = StringArrayUtils.contains(array, \"the\");\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n\n    ```\n    true\n    ```\n    \n    \n    \n\n### Example 2\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"the\", \"quick\", \"brown\", \"fox\", \"jumps\", \"over\", \"the\", \"lazy\", \"dog\"};\n    \n    // : When\n    boolean outcome = StringArrayUtils.contains(array, \"potatoes\");\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n\n    ```\n    false\n    ```\n\n\n\n## `String[] reverse(String[] array)`\n* **Description**\n   * Given an array of `String` objects, return an array with identical contents in reverse order.\n\n### Example 1\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"the\", \"quick\", \"brown\", \"fox\", \"jumps\", \"over\", \"the\", \"lazy\", \"dog\"};\n    \n    // : When\n    boolean outcome = StringArrayUtils.contains(array, \"the\");\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n\n    ```\n    [dog, lazy, the, over, jumps, fox, brown, quick, the]\n    ```\n    \n    \n    \n\n### Example 2\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"Pack\", \"my\", \"box\", \"with\", \"five\", \"dozen\", \"liquor\", \"jugs\"};\n    \n    // : When\n    boolean outcome = StringArrayUtils.contains(array, \"potatoes\");\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n\n    ```\n    [jugs, liquor, dozen, five, with, box, my, Pack]\n    ```\n\n    \n\n### Example 3\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"The\", \"quick\", \"onyx\", \"goblin\", \"jumps\", \"over\", \"the\", \"lazy\", \"dwarf\"};\n    \n    // : When\n    boolean outcome = StringArrayUtils.contains(array, \"potatoes\");\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n\n    ```\n    [dwarf, lazy, the, over, jumps, goblin, onyx, quick, The]\n    ```\n\n## `boolean isPalindromic(String[] array)`\n* **Description**\n    * A [palindrome](http://www.dictionary.com/browse/palindromic) is a sequence that is the same backwards and forwards.\n    * Given an array of `String` objects, return `true` if the array is palindromic.\n        \n### Example 1\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"a\", \"b\", \"c\", \"b\", \"a\"}\n    \n    // : When\n    boolean outcome = StringArrayUtils.isPalindrome(array);\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n    ```\n    true\n    ```\n    \n    \n        \n### Example 2\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"Is this a plaindrome?\", \"This is a plaindrome\", \"Is this a palindrome?\"}\n    \n    // : When\n    boolean outcome = StringArrayUtils.isPalindrome(array);\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n    ```\n    true\n    ```\n    \n        \n\n\n        \n### Example 3\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"Is this a plaindrome?\", \"This is not a plaindrome\", \"Is this a palindrome?\", \"This is not a palindrome\"}\n    \n    // : When\n    boolean outcome = StringArrayUtils.isPalindrome(array);\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n    ```\n    false\n    ```\n\n\n## `boolean isPangramic(String[] array)`\n* **Description**\n    * A [pangram](http://www.dictionary.com/browse/pangram) is a sequence that contains all letters of the alphabet.\n    * Given an array of `String` objects, return `true` if the array is palindromic.\n        \n### Example 1\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"The quick brown\", \"Fox jumps over\", \"The lazy dog\"}\n    \n    // : When\n    boolean outcome = StringArrayUtils.isPangramic(array);\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n    ```\n    true\n    ```\n    \n    \n### Example 2\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"The\", \"quick\", \"onyx\", \"goblin\", \"jumps\", \"over\", \"the\", \"lazy\", \"dwarf\"};\n    \n    // : When\n    boolean outcome = StringArrayUtils.isPangramic(array);\n    \n    // : Then\n    System.out.println(outcome);\n    ```\n* Sample Output\n    ```\n    true\n    ```\n   \n\n\n \n\n## `int getNumberOfOccurrences(String[] array, String value)`\n* **Description**\n    * Given an array of `String` objects named `array` and a `String` object named `value`\u003cbr\u003ereturn the number of times `value` appears in `arrays`\n\n### Example 1\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"aba\", \"aba\", \"baa\", \"bab\", \"bba\", \"bba\", \"bba\", \"bba\", \"bbb\", \"bbb\"};\n    \n    // : When\n    int numberOfOccurrences = StringArrayUtils.getNumberOfOccurrences(array, \"bba\");\n    \n    // : Then\n    System.out.println(numberOfOccurrences);\n    ```\n* Sample Output\n\n    ```\n    4\n    ```\n    \n    \n    \n\n### Example 2\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"aba\", \"aba\", \"baa\", \"bab\", \"bba\", \"bba\", \"bba\", \"bba\", \"bbb\", \"bbb\"};\n    \n    // : When\n    int numberOfOccurrences = StringArrayUtils.getNumberOfOccurrences(array, \"bbb\");\n    \n    // : Then\n    System.out.println(numberOfOccurrences);\n    ```\n* Sample Output\n\n    ```\n    2\n    ```\n    \n\n### Example 3\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"aba\", \"aba\", \"baa\", \"bab\", \"bba\", \"bba\", \"bba\", \"bba\", \"bbb\", \"bbb\"};\n    \n    // : When\n    int numberOfOccurrences = StringArrayUtils.getNumberOfOccurrences(array, \"baa\");\n    \n    // : Then\n    System.out.println(numberOfOccurrences);\n    ```\n* Sample Output\n\n    ```\n    1\n    ```\n\n## `String[] removeConsecutiveDuplicates(String[] array)`\n* **Description**\n    * Given an array of `String` objects, return an array of Strings with conseuctive duplicates removed.\n        \n        \n\n### Example 1\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"aba\", \"aba\", \"baa\", \"bab\", \"bba\", \"bba\", \"bba\", \"bba\", \"bbb\", \"bbb\"};\n    \n    // : When\n    String[] actual = StringArrayUtils.removeConsecutiveDuplicates(array);\n    \n    // : Then\n    System.out.println(Arrays.toString(actual));\n    ```\n* Sample Output\n    ```\n    [aba, baa, bab, bba, bbb];\n    ```\n\n### Example 2\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"aba\", \"aba\", \"baa\", \"bab\", \"bba\", \"zzz\", \"bba\", \"bba\", \"bba\", \"bbb\", \"bbb\"};\n    \n    // : When\n    String[] actual = StringArrayUtils.removeConsecutiveDuplicates(array);\n    \n    // : Then\n    System.out.println(Arrays.toString(actual));\n    ```\n* Sample Output\n    ```\n    [aba, baa, bab, bba, zzz, bba, bbb];\n    ```\n\n### Example 3\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"aba\", \"aba\", \"baa\", \"bab\", \"bba\", \"zzz\", \"bba\", \"bba\", \"bba\", \"bbb\", \"bbb\", \"aba\", \"bbb\"};\n    \n    // : When\n    String[] actual = StringArrayUtils.removeConsecutiveDuplicates(array);\n    \n    // : Then\n    System.out.println(Arrays.toString(actual));\n    ```\n* Sample Output\n    ```\n    [aba, baa, bab, bba, zzz, bba, aba, bbb];\n    ```\n\n\n## `String[] packConsecutiveDuplicates(String[] array)`\n* **Description**\n    * Given an array of `char` objects, return an array of Strings with consecutive duplicates placed in an array.\n        \n\n### Example 1\n* Sample Script\n\n    ```\n    // : Given\n\tString[] array = {\"a\", \"a\", \"a\", \"a\", \"b\", \"c\", \"c\", \"a\", \"a\", \"d\"};\n\t\n    // : When\n    String[] actual = StringArrayUtils.packConsecutiveDuplicates(array);\n    \n    // : Then\n    System.out.println(Arrays.toString(actual));\n    ```\n* Sample Output\n    ```\n    [aaa, b, cc, aa, d, eee];\n    ```\n\n\n### Example 2\n* Sample Script\n\n    ```\n    // : Given\n\tString[] array = {\"t\", \"t\", \"q\", \"a\", \"a\", \"a\", \"b\", \"c\", \"c\", \"a\", \"a\", \"d\", \"e\", \"e\", \"e\"}; \n\t\n    // : When\n    String[] actual = StringArrayUtils.packConsecutiveDuplicates(array);\n    \n    // : Then\n    System.out.println(Arrays.toString(actual));\n    ```\n* Sample Output\n    ```\n    [tt, q, aaa, b, cc, aa, d, eee];\n    ```\n\n\n### Example 3\n* Sample Script\n\n    ```\n    // : Given\n\tString[] array = {\"m\", \"o\", \"o\", \"n\", \"m\", \"a\", \"n\"}\n\t\n    // : When\n    String[] actual = StringArrayUtils.packConsecutiveDuplicates(array);\n    \n    // : Then\n    System.out.println(Arrays.toString(actual));\n    ```\n* Sample Output\n    ```\n    [m, oo, n, m, a, n];\n    ```\n\n## `String[] removeValues(String[] array, String valueToRemove)`\n* **Description**\n    * Given an array of `String` objects named `array` and a `String` object named `valueToRemove`\u003cbr\u003ecreate and return an array containing identical contents excluding objects whose value is equivalent to `valueToRemove`. Ensure that the length of the newly created array has been resized based on the removal of the undesired elements. \n        \n### Example 1\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"aba\", \"aba\", \"baa\", \"bab\", \"bba\", \"bba\", \"bba\", \"bba\", \"bbb\", \"bbb\"};\n    \n    // : When\n    String[] actual = StringArrayUtils.removeValues(array, \"aba\");\n    \n    // : Then\n    System.out.println(Arrays.toString(actual));\n    ```\n\n* Sample Output\n    ```\n    [baa, bab, bba, bba, bba, bba, bbb, bbb};\n    ```\n    \n    \n\n### Example 2\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"aba\", \"aba\", \"baa\", \"bab\", \"bba\", \"bba\", \"bba\", \"bba\", \"bbb\", \"bbb\"};\n    \n    // : When\n    String[] actual = StringArrayUtils.removeValues(array, \"bba\");\n    \n    // : Then\n    System.out.println(Arrays.toString(actual));\n    ```\n* Sample Output\n    ```\n    [aba, aba, baa, bab, bbb, bbb];\n    ```\n    \n    \n\n### Example 3\n* Sample Script\n\n    ```\n    // : Given\n    String[] array = {\"aba\", \"aba\", \"baa\", \"bab\", \"bba\", \"bba\", \"bba\", \"bba\", \"bbb\", \"bbb\"};\n    \n    // : When\n    String[] actual = StringArrayUtils.removeValues(array, \"bbb\");\n    \n    // : Then\n    System.out.println(Arrays.toString(actual));\n    ```\n* Sample Output\n    ```\n    [aba, aba, baa, bab, bba, bba, bba, bba];\n    ```\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzipcodecore%2Fstringarrayutilities","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzipcodecore%2Fstringarrayutilities","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzipcodecore%2Fstringarrayutilities/lists"}