mirror of https://gitee.com/y_project/RuoYi.git
修复驼峰转下划线拼接时,简称缩写作为前缀时,转换后首字母后追加了下划线
parent
8b07f8925f
commit
4374a24f79
|
@ -259,38 +259,36 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils
|
|||
/**
|
||||
* 下划线转驼峰命名
|
||||
*/
|
||||
public static String toUnderScoreCase(String s)
|
||||
{
|
||||
if (s == null)
|
||||
{
|
||||
public static String toUnderScoreCase(String str) {
|
||||
if (str == null) {
|
||||
return null;
|
||||
}
|
||||
StringBuilder sb = new StringBuilder();
|
||||
boolean upperCase = false;
|
||||
for (int i = 0; i < s.length(); i++)
|
||||
{
|
||||
char c = s.charAt(i);
|
||||
|
||||
boolean nextUpperCase = true;
|
||||
|
||||
if (i < (s.length() - 1))
|
||||
{
|
||||
nextUpperCase = Character.isUpperCase(s.charAt(i + 1));
|
||||
//前置字符是否大写
|
||||
boolean preCharIsUpperCase = true;
|
||||
//当前字符是否大写
|
||||
boolean curreCharIsUpperCase = true;
|
||||
//下一字符是否大写
|
||||
boolean nexteCharIsUpperCase = true;
|
||||
for (int i = 0; i < str.length(); i++) {
|
||||
char c = str.charAt(i);
|
||||
if (i > 0) {
|
||||
preCharIsUpperCase = Character.isUpperCase(str.charAt(i-1));;
|
||||
} else {
|
||||
preCharIsUpperCase = false;
|
||||
}
|
||||
|
||||
curreCharIsUpperCase = Character.isUpperCase(c);
|
||||
|
||||
if ((i > 0) && Character.isUpperCase(c))
|
||||
{
|
||||
if (!upperCase || !nextUpperCase)
|
||||
{
|
||||
sb.append(SEPARATOR);
|
||||
}
|
||||
upperCase = true;
|
||||
if (i < (str.length() - 1)) {
|
||||
nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1));
|
||||
}
|
||||
else
|
||||
{
|
||||
upperCase = false;
|
||||
|
||||
if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) {
|
||||
sb.append(SEPARATOR);
|
||||
} else if ((i !=0 && !preCharIsUpperCase) && curreCharIsUpperCase) {
|
||||
sb.append(SEPARATOR);
|
||||
}
|
||||
|
||||
sb.append(Character.toLowerCase(c));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue