关于java:在String中首字母大写

Capitalise first letter in String

本问题已经有最佳答案,请猛点这里访问。

我无法将字符串中的第一个字母转换为大写:

1
2
3
4
5
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();

这似乎不起作用。

有什么建议吗?


尝试做:

1
rackingSystem = rackingSystem.toLowerCase();

而不是:

1
rackingSystem.toLowerCase();

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

但更容易(只要字符串大于长度2):

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


1
2
3
StringBuilder rackingSystemSb = new StringBuilder(rackingSystem.toLowerCase());
rackingSystemSb.setCharAt(0, Character.toUpperCase(rackingSystemSb.charAt(0)));
rackingSystem = rackingSystemSb.toString();