|
|
|
@ -259,8 +259,10 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
|
|
|
|
|
/**
|
|
|
|
|
* 下划线转驼峰命名
|
|
|
|
|
*/
|
|
|
|
|
public static String toUnderScoreCase(String str) {
|
|
|
|
|
if (str == null) {
|
|
|
|
|
public static String toUnderScoreCase(String str)
|
|
|
|
|
{
|
|
|
|
|
if (str == null)
|
|
|
|
|
{
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
@ -270,23 +272,31 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
|
|
|
|
|
boolean curreCharIsUpperCase = true;
|
|
|
|
|
// 下一字符是否大写
|
|
|
|
|
boolean nexteCharIsUpperCase = true;
|
|
|
|
|
for (int i = 0; i < str.length(); i++) {
|
|
|
|
|
for (int i = 0; i < str.length(); i++)
|
|
|
|
|
{
|
|
|
|
|
char c = str.charAt(i);
|
|
|
|
|
if (i > 0) {
|
|
|
|
|
preCharIsUpperCase = Character.isUpperCase(str.charAt(i-1));;
|
|
|
|
|
} else {
|
|
|
|
|
if (i > 0)
|
|
|
|
|
{
|
|
|
|
|
preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1));
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
preCharIsUpperCase = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
curreCharIsUpperCase = Character.isUpperCase(c);
|
|
|
|
|
|
|
|
|
|
if (i < (str.length() - 1)) {
|
|
|
|
|
if (i < (str.length() - 1))
|
|
|
|
|
{
|
|
|
|
|
nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) {
|
|
|
|
|
if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase)
|
|
|
|
|
{
|
|
|
|
|
sb.append(SEPARATOR);
|
|
|
|
|
} else if ((i !=0 && !preCharIsUpperCase) && curreCharIsUpperCase) {
|
|
|
|
|
}
|
|
|
|
|
else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase)
|
|
|
|
|
{
|
|
|
|
|
sb.append(SEPARATOR);
|
|
|
|
|
}
|
|
|
|
|
sb.append(Character.toLowerCase(c));
|
|
|
|
|