From 68a419c53a4ee0f1982624d440cbc9655b8fbd17 Mon Sep 17 00:00:00 2001 From: Walter Oggioni Date: Fri, 12 Feb 2021 09:32:13 +0100 Subject: [PATCH] added array iterate, capitalize and decapitalize methods --- src/main/java/net/woggioni/jwo/JWO.java | 47 +++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/src/main/java/net/woggioni/jwo/JWO.java b/src/main/java/net/woggioni/jwo/JWO.java index 1560a15..8316e0c 100644 --- a/src/main/java/net/woggioni/jwo/JWO.java +++ b/src/main/java/net/woggioni/jwo/JWO.java @@ -540,4 +540,51 @@ public class JWO { is.close(); } } + + public static Iterator iterator(T[] array) { + return new Iterator() { + private int i = 0; + @Override + public boolean hasNext() { + return i < array.length; + } + + @Override + public T next() { + return array[i++]; + } + }; + } + + public static String decapitalize(String s, Locale locale) { + if (!s.isEmpty() && !Character.isLowerCase(s.charAt(0))) + return s.substring(0, 1).toLowerCase(locale) + s.substring(1); + else return s; + } + + public static String decapitalize(String s) { + return decapitalize(s, Locale.getDefault()); + } + + public static String capitalize(String s) { + return capitalize(s, Locale.getDefault()); + } + + public static String capitalize(String s, Locale locale) { + if (!s.isEmpty()) { + char firstChar = s.charAt(0); + if (Character.isLowerCase(firstChar)) { + StringBuilder sb = new StringBuilder(); + char titleChar = Character.toTitleCase(firstChar); + if (titleChar != Character.toUpperCase(firstChar)) { + sb.append(titleChar); + } else { + sb.append(s.substring(0, 1).toUpperCase(locale)); + } + sb.append(s.substring(1)); + return sb.toString(); + } + } + return s; + } }