`
旭少版
  • 浏览: 83298 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

关于核心代码StringUtil里首字母大小写的bug

阅读更多
源码:
       /**
	 * 首字母大写
	 * @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;
		}
	}
分享到:
评论

相关推荐

    StringUtil.java

    java编程中对字符串的各种方式的处理,包括(空字符串处理、判断是否是空字符串 null和"" 都返回 true、 把string array or list用给定的符号symbol连接成一个字符串、 判定第一个字符串是否等于的第二个字符串中的某...

    StringUtil(通过的字符处理工具类)

    StringUtil(通过的字符处理工具类)

    StringUtil.java工具类

    StringUtil工具类java学习的好东西!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!...

    StringUtil

    String util操作类,个人整理,欢迎补充

    C语言实现String字符串及其函数stringUtil

    C语言实现String字符串及其函数,仅供参考~ C语言实现String字符串及其函数,仅供参考~ C语言实现String字符串及其函数,仅供参考~

    StringUtil.rar

    将一个字符串按照指定的分隔符分割成字符串数组;模板函数:T类型的数组按照分隔符连接成字符串、格式化字符串、正则表达式解析字符串等等

    StringUtil工具类

    StringUtil工具类 是对String 对象封装操作

    自己整理的StringUtil ,字符串处理工具类.txt

    自己整理的StringUtil ,字符串处理工具类,很全面的方法,对象之间的数据转换

    StringUtil_StringUtil_

    字符串操作

Global site tag (gtag.js) - Google Analytics