From f8eff578b94fece2d02a15104b540537c2a6d0cc Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Sun, 16 Sep 2018 22:28:05 -0400 Subject: Case folding options --- src/main/java/bjc/inflexion/InflectionML.java | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/bjc/inflexion/InflectionML.java b/src/main/java/bjc/inflexion/InflectionML.java index f1e7b00..46cbc59 100644 --- a/src/main/java/bjc/inflexion/InflectionML.java +++ b/src/main/java/bjc/inflexion/InflectionML.java @@ -88,8 +88,26 @@ public class InflectionML { final Set optionSet = new HashSet<>(); - for (int i = 1; i <= options.length(); i++) { - optionSet.add(options.substring(i - 1, i)); + boolean doCaseFold = false; + + if (!options.equals("")) { + if (options.matches("(?:[a-z]*[A-Z]+[a-z])+")) { + doCaseFold = true; + } + + for (int i = 0; i < options.length(); i++) { + char ci = options.charAt(i); + String opt = Character.toString(ci); + + if (doCaseFold) { + if (Character.isUpperCase(ci)) + opt = opt.toLowerCase(); + else + continue; + } + + optionSet.add(opt); + } } switch (command) { -- cgit v1.2.3