源码:
/**
* 首字母大写
* @param realName
* @return
*/
public static String firstUpperCase(String realName) {
return StringUtils.replaceChars(realName, realName.substring(0, 1),realName.substring(0, 1).toUpperCase());
}
/**
* 首字母小写
* @param realName
* @return
*/
public static String firstLowerCase(String realName) {
return StringUtils.replaceChars(realName, realName.substring(0, 1),realName.substring(0, 1).toLowerCase());
}
在某些情况下格式化会出错.
e.g. CmsController 格式化 出来是 cmscontroller
附上自己写的一段代码....自我觉得可用,但是不保证是最优,处女座的可以略过
/**
* 首字母大写
* @param realName
* @return 非null,则表示已经转换完成
* <br />
* date & time: 2015-4-4 / 下午11:43:19 <br />
* author: <a href="http://chris-rock-f0.iteye.com/">chris</a>
*/
public static String firstUpperCase(String realName) {
Boolean flag = StringUtil.isUpperOrLowerCase(realName.charAt(0));
if (flag != null && !flag) {//是字母,而且是小写字母
char[] cs = realName.toCharArray();
StringBuffer stringBuffer = new StringBuffer();
int i = 0;
for (char c : cs) {
if (i++ == 0) {
char temp = (char) (c - 32);
stringBuffer.append(String.valueOf(temp));
}else {
stringBuffer.append(String.valueOf(c));
}
}
return stringBuffer.toString();
}else if(flag != null && flag){//是字母,而且也是大写字母
return realName;
}else {
return null;
}
}
/**
* 首字母小写
* @param realName
* @return 非null,则表示已经转换完成
* <br />
* date & time: 2015-4-4 / 下午11:44:36 <br />
* author: <a href="http://chris-rock-f0.iteye.com/">chris</a>
*/
public static String firstLowerCase(String realName) {
Boolean flag = StringUtil.isUpperOrLowerCase(realName.charAt(0));
if (flag != null && flag) {//是字母,而且是大写字母
char[] cs = realName.toCharArray();
StringBuffer stringBuffer = new StringBuffer();
int i = 0;
for (char c : cs) {
if (i++ == 0) {
char temp = (char) (c + 32);
stringBuffer.append(String.valueOf(temp));
}else {
stringBuffer.append(String.valueOf(c));
}
}
return stringBuffer.toString();
}else if(flag != null && !flag){//是字母,而且也是小写字母
return realName;
}else {
return null;
}
}
/**
* 是大写还是小写字母
* @param c 字符
* @return <br />
* <ol>
* <li>true: 大写</li>
* <li>false: 小写 </li>
* <li>null: 不是字母</li>
* </ol>
* <br />
* date & time: 2015-4-4 / 下午11:27:24 <br />
* author: <a href="http://chris-rock-f0.iteye.com/">chris</a>
*/
public static Boolean isUpperOrLowerCase(char c){
int cint = c - 0;
if (cint <= 90 && cint >= 65) {//大写字母
return true;
}else if (cint <= 122 && cint >= 97) {//小写字母
return false;
}else {
return null;
}
}