I have a string:
String c = "IceCream";
If I use toUpperCase() function then it returns the same string, but I want to get "ICECREAM". 
Where is the problem?
I have a string:
String c = "IceCream";
If I use toUpperCase() function then it returns the same string, but I want to get "ICECREAM". 
Where is the problem?
 
    
     
    
    The code
String c = "IceCream";
String upper = c.toUpperCase();
System.out.println(upper);
correctly prints "ICECREAM". However, the original string c isn't changed. Strings in Java are immutable so all operations on the string return a new copy.
 
    
    Are you expecting the original variable, c, to have been changed by toUpperCase()? Strings are  immutable; methods such as .toUpperCase() return new strings, leaving the original un-modified: 
String c = "IceCream";
String d = c.toUpperCase();
System.out.println(c); // prints IceCream
System.out.println(d); // prints ICECREAM
 
    
     
    
    The object can't be changed, because String is immutable. However, you can have the reference point to a new instance, which is all uppercase:
String c = "IceCream";
c = c.toUpperCase();
 
    
     
    
    You're supposed to use it like this:
String c = "IceCream";
String upper_c = c.toUpperCase();
 
    
    It could be a problem with your locale. Try:
String c = "IceCream";
return c.toUpperCase(Locale.ENGLISH);
