From db5a8b5d658615f6bec6112facd670f8e44f84d1 Mon Sep 17 00:00:00 2001 From: Shekhar Gulati Date: Fri, 23 Jun 2017 21:04:12 +0530 Subject: [PATCH] Resolved #81 --- src/main/java/strman/Strman.java | 22 ++++++++++++++++++++++ src/test/java/strman/StrmanTests.java | 8 ++++++++ 2 files changed, 30 insertions(+) diff --git a/src/main/java/strman/Strman.java b/src/main/java/strman/Strman.java index 0e16055..83d4808 100644 --- a/src/main/java/strman/Strman.java +++ b/src/main/java/strman/Strman.java @@ -1368,6 +1368,27 @@ public abstract class Strman { return upperFirst(underscored(input).replaceAll("_", " ")); } + /** + * Returns a copy of the string in which all the case-based characters have had their case swapped. + * + * @param input Input string + * @return String with all the case swapped + */ + public static String swapCase(String input) { + if (input == null || input.length() == 0) { + return ""; + } + StringBuilder resultBuilder = new StringBuilder(); + for (char ch : input.toCharArray()) { + if (Character.isUpperCase(ch)) { + resultBuilder.append(Character.toLowerCase(ch)); + } else { + resultBuilder.append(Character.toUpperCase(ch)); + } + } + return resultBuilder.toString(); + } + private static void validate(String value, Predicate predicate, final Supplier supplier) { if (predicate.test(value)) { throw new IllegalArgumentException(supplier.get()); @@ -1391,5 +1412,6 @@ public abstract class Strman { private static boolean isNullOrEmpty(String input) { return input == null || input.isEmpty(); } + } diff --git a/src/test/java/strman/StrmanTests.java b/src/test/java/strman/StrmanTests.java index 30702d8..73f9dcd 100644 --- a/src/test/java/strman/StrmanTests.java +++ b/src/test/java/strman/StrmanTests.java @@ -1168,4 +1168,12 @@ public class StrmanTests { assertThat(dasherize(""), equalTo("")); assertThat(dasherize(null), equalTo("")); } + + @Test + public void swapCase_shouldSwapCaseOfCharacters() throws Exception { + assertThat(swapCase("AaBbCcDdEe"), equalTo("aAbBcCdDeE")); + assertThat(swapCase("Hello World"), equalTo("hELLO wORLD")); + assertThat(swapCase(""), equalTo("")); + assertThat(swapCase(null), equalTo("")); + } }