将字符串中的首字母大写

Sca*_*lli 30 java stringbuilder capitalize

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

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();
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用..

有什么建议?

A--*_*--C 67

尝试做:

rackingSystem = rackingSystem.toLowerCase();
Run Code Online (Sandbox Code Playgroud)

代替:

rackingSystem.toLowerCase(); 
Run Code Online (Sandbox Code Playgroud)

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

但是更容易(只要你的String大于长度2):

rackingSystem = rackingSystem.substring(0,1).toUpperCase() + rackingSystem.substring(1).toLowerCase();
Run Code Online (Sandbox Code Playgroud)

  • `public static String capitalize(String s) { if(s == null) return null; if(s.length() == 1){ 返回 s.toUpperCase(); } if(s.length() > 1){ return s.substring(0,1).toUpperCase() + s.substring(1); } 返回 ””; }` (5认同)

Ele*_*ace 18

StringBuilder rackingSystemSb = new StringBuilder(rackingSystem.toLowerCase());
rackingSystemSb.setCharAt(0, Character.toUpperCase(rackingSystemSb.charAt(0)));
rackingSystem = rackingSystemSb.toString();
Run Code Online (Sandbox Code Playgroud)