|
@@ -21,6 +21,62 @@ public class StringUtils {
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 将下划线风格转换为驼峰风格
|
|
|
+ * @param inputString
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String underlineToCamehunp(String inputString){
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ boolean nextUppercase = false;
|
|
|
+ for (int i = 0; i < inputString.length(); i++) {
|
|
|
+ char c = inputString.charAt(i);
|
|
|
+ if (c == '_') {
|
|
|
+ if (sb.length()>0) {
|
|
|
+ nextUppercase = true;
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ if (nextUppercase) {
|
|
|
+ sb.append(Character.toUpperCase(c));
|
|
|
+ nextUppercase = false;
|
|
|
+ }else {
|
|
|
+ sb.append(Character.toLowerCase(c));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return sb.toString();
|
|
|
+ }
|
|
|
+ private static Pattern linePattern = Pattern.compile("_(\\w)");
|
|
|
+ /** 下划线转驼峰 */
|
|
|
+ public static String lineToHump(String str) {
|
|
|
+ str = str.toLowerCase();
|
|
|
+ Matcher matcher = linePattern.matcher(str);
|
|
|
+ StringBuffer sb = new StringBuffer();
|
|
|
+ while (matcher.find()) {
|
|
|
+ matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
|
|
|
+ }
|
|
|
+ matcher.appendTail(sb);
|
|
|
+ return sb.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ /** 驼峰转下划线(简单写法,效率低于{@link #humpToLine2(String)}) */
|
|
|
+ public static String humpToLine(String str) {
|
|
|
+ return str.replaceAll("[A-Z]", "_$0").toLowerCase();
|
|
|
+ }
|
|
|
+
|
|
|
+ private static Pattern humpPattern = Pattern.compile("[A-Z]");
|
|
|
+
|
|
|
+ /** 驼峰转下划线,效率比上面高 */
|
|
|
+ public static String humpToLine2(String str) {
|
|
|
+ Matcher matcher = humpPattern.matcher(str);
|
|
|
+ StringBuffer sb = new StringBuffer();
|
|
|
+ while (matcher.find()) {
|
|
|
+ matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
|
|
|
+ }
|
|
|
+ matcher.appendTail(sb);
|
|
|
+ return sb.toString();
|
|
|
+ }
|
|
|
+
|
|
|
public static String replaceBlank(String str) {
|
|
|
String dest = "";
|
|
|
if (str!=null) {
|