diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2018-09-16 22:28:05 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2018-09-16 22:28:05 -0400 |
| commit | f8eff578b94fece2d02a15104b540537c2a6d0cc (patch) | |
| tree | 6fa6739aacee6cb03371bc83fd220a8c4b0b3531 /src/main/java/bjc | |
| parent | 61e7296b5b556d82159fd6280fb9e7b23d2f3038 (diff) | |
Case folding options
Diffstat (limited to 'src/main/java/bjc')
| -rw-r--r-- | src/main/java/bjc/inflexion/InflectionML.java | 22 |
1 files changed, 20 insertions, 2 deletions
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<String> 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) { |
