|
@@ -0,0 +1,50 @@
|
|
|
+package com.szwl.myAnnotation;
|
|
|
+
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
+import org.springframework.format.Formatter;
|
|
|
+
|
|
|
+import java.text.ParseException;
|
|
|
+import java.util.Locale;
|
|
|
+
|
|
|
+public class CamelCaseToUnderscoreFormatter implements Formatter<String> {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String print(String paramT, Locale paramLocale) {
|
|
|
+ return convertCamelCaseToUnderscore(paramT);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String parse(String paramString, Locale paramLocale) throws ParseException {
|
|
|
+ // TODO Auto-generated method stub
|
|
|
+ return convertCamelCaseToUnderscore(paramString);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static String convertCamelCaseToUnderscore(String str) {
|
|
|
+ String result = "";
|
|
|
+ String[] parts = str.split(",");
|
|
|
+ for (int i = 0; i < parts.length; i++) {
|
|
|
+ String part = parts[i];
|
|
|
+ String[] fields = part.split(" ");
|
|
|
+ for (String field : fields) {
|
|
|
+ field = field.trim();
|
|
|
+ String _str = StringUtils.upperCase(field);
|
|
|
+ if(!"ASC".equals(StringUtils.upperCase(field))&&!"DESC".equals(StringUtils.upperCase(field))) {
|
|
|
+ String[] strings = StringUtils.splitByCharacterTypeCamelCase(field);
|
|
|
+ _str = StringUtils.join(strings, "_");
|
|
|
+ _str = StringUtils.upperCase(_str);
|
|
|
+ }
|
|
|
+ System.out.println(_str);
|
|
|
+ result = result + " " + _str;
|
|
|
+ }
|
|
|
+ if(i+1!= parts.length) {
|
|
|
+ result = result + ",";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+// public static void main(String[] args) {
|
|
|
+// String result = convertCamelCaseToUnderscore("myFi desc,myEntity asc");
|
|
|
+// System.out.println(result);
|
|
|
+// }
|
|
|
+}
|