30

I'm having trouble converting the first letter to Capital in a String:

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();

This doesn't seem to work..

Any suggestions?

Siim Veskilt
  • 80
  • 10
Scamparelli
  • 671
  • 1
  • 9
  • 25

2 Answers2

67

Try doing:

rackingSystem = rackingSystem.toLowerCase();

Instead of:

rackingSystem.toLowerCase(); 

Strings are immutable, you must reassign the result of toLowerCase().

Easier though, (as long as your String is larger than length 2):

rackingSystem = rackingSystem.substring(0,1).toUpperCase() + rackingSystem.substring(1).toLowerCase();
Jawwad
  • 1,296
  • 2
  • 9
  • 17
A--C
  • 35,565
  • 10
  • 102
  • 90
  • 5
    `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 ""; }` – Roel May 04 '15 at 12:16
18
StringBuilder rackingSystemSb = new StringBuilder(rackingSystem.toLowerCase());
rackingSystemSb.setCharAt(0, Character.toUpperCase(rackingSystemSb.charAt(0)));
rackingSystem = rackingSystemSb.toString();
ElefantPhace
  • 3,743
  • 3
  • 18
  • 36