【问题标题】:Capitalise first letter in String [duplicate]大写字符串中的第一个字母[重复]
【发布时间】:2013-02-21 23:27:35
【问题描述】:

我在将字符串中的第一个字母转换为大写字母时遇到问题:

rackingSystem.toLowerCase(); // has capitals in every word, so first convert all to lower case
StringBuilder rackingSystemSb = new StringBuilder();
rackingSystemSb.append(rackingSystem);
rackingSystemSb.setCharAt(0, Character.toUpperCase(rackingSystemSb.charAt(0))); 
rackingSystem = rackingSystemSb.toString();

这似乎不起作用..

有什么建议吗?

【问题讨论】:

    标签: java stringbuilder capitalize


    【解决方案1】:

    尝试做:

    rackingSystem = rackingSystem.toLowerCase();
    

    代替:

    rackingSystem.toLowerCase(); 
    

    字符串是不可变的,你必须重新分配toLowerCase()的结果。

    不过更简单,(只要您的字符串大于长度 2):

    rackingSystem = rackingSystem.substring(0,1).toUpperCase() + rackingSystem.substring(1).toLowerCase();
    

    【讨论】:

    • public static String capitalize(String s) { if(s == null) return null; if(s.length() == 1){ return s.toUpperCase(); } if(s.length() > 1){ return s.substring(0,1).toUpperCase() + s.substring(1); } return ""; }
    【解决方案2】:
    StringBuilder rackingSystemSb = new StringBuilder(rackingSystem.toLowerCase());
    rackingSystemSb.setCharAt(0, Character.toUpperCase(rackingSystemSb.charAt(0)));
    rackingSystem = rackingSystemSb.toString();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-20
      • 1970-01-01
      • 2014-11-26
      • 2012-11-24
      • 1970-01-01
      • 2015-07-24
      • 1970-01-01
      相关资源
      最近更新 更多