summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2018-09-16 22:28:05 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2018-09-16 22:28:05 -0400
commitf8eff578b94fece2d02a15104b540537c2a6d0cc (patch)
tree6fa6739aacee6cb03371bc83fd220a8c4b0b3531 /src/main
parent61e7296b5b556d82159fd6280fb9e7b23d2f3038 (diff)
Case folding options
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/bjc/inflexion/InflectionML.java22
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) {