for(int i=0; i<255; i++) {
if (byLength[i] == null) continue;
- System.out.println("case " + i + ": {");
+ System.out.println("case " + i + ": { switch(neverUseThis.charAt(0)) {");
buildTrie("", byLength[i]);
- System.out.println("break; }");
+ System.out.println("}; break; }");
}
System.out.println("} //switch");
} } );
for(int i=0; i<keys.size(); i++) {
+ if (!((String)keys.elementAt(i)).startsWith(prefix)) continue;
String prefixPlusOne = ((String)keys.elementAt(i)).substring(0, prefix.length() + 1);
if (i<keys.size()-1 && prefixPlusOne.equals((((String)keys.elementAt(i + 1)).substring(0, prefix.length() + 1)))) {
System.out.println("case \'" + prefixPlusOne.charAt(prefixPlusOne.length() - 1) + "\': {");
System.out.println("switch(neverUseThis.charAt(" + prefix.length() + ")) {");
buildTrie(prefixPlusOne, cases);
System.out.println("} break; }");
- while(i<keys.size()-1 &&
- prefixPlusOne.equals(((String)keys.elementAt(i + 1)).substring(0, prefix.length() + 1))) {
- i++;
- prefixPlusOne = ((String)keys.elementAt(i)).substring(0, prefix.length() + 1);
- }
- i--;
+ while(i<keys.size() && prefixPlusOne.equals(((String)keys.elementAt(i)).substring(0, prefix.length() + 1))) i++;
+ if (i<keys.size()) { i--; continue; }
} else {
+ System.out.println("case \'" + prefixPlusOne.charAt(prefixPlusOne.length() - 1) + "\':");
String code = (String)cases.get(keys.elementAt(i));
code = code.substring(0, code.length() - 1);
String key = (String)keys.elementAt(i);
- System.out.println("if (\""+key+"\".equals(neverUseThis)) { " + code + " } ");
+ System.out.println("if (\""+key+"\".equals(neverUseThis)) { " + code + " } break; ");
}
}
}