2011-12-11 28 views
11

मैं एक स्ट्रिंग है:toUpperCase काम नहीं करता है

String c = "IceCream"; 

अगर मैं तो toUpperCase() फ़ंक्शन का उपयोग करें यह एक ही स्ट्रिंग देता है, लेकिन मैं "ICECREAM" प्राप्त करना चाहते हैं।

समस्या कहां है?

उत्तर

30

कोड

String c = "IceCream"; 
String upper = c.toUpperCase(); 
System.out.println(upper); 

सही ढंग से प्रिंट "मलाईबर्फ़"। हालांकि, मूल स्ट्रिंग सी नहीं बदला गया है। जावा में स्ट्रिंग्स immutable हैं इसलिए स्ट्रिंग पर सभी ऑपरेशन एक नई प्रतिलिपि लौटाते हैं।

+0

भी देखें http://stackoverflow.com/ प्रश्न/22397861/क्यों-है-स्ट्रिंग-अपरिवर्तनीय-इन-जावा – Raedwald

3

आप चाहिए रहे हैं इस तरह इसका इस्तेमाल करने की:

String c = "IceCream"; 
String upper_c = c.toUpperCase(); 
+1

एक विकल्प भी होगा 'स्ट्रिंग ग =" कुल्फ़ी ".toUpperCase();' –

7

वस्तु नहीं बदला जा सकता, क्योंकि String अपरिवर्तनीय है। हालांकि, अगर आप एक नया उदाहरण है, जो सभी बड़े है के संदर्भ बिंदु हो सकता है:

String c = "IceCream"; 
c = c.toUpperCase(); 
0

यह आपके लोकेल के साथ एक समस्या हो सकती है। प्रयास करें:

String c = "IceCream"; 
return c.toUpperCase(Locale.ENGLISH); 
11

आप मूल चर, c, toUpperCase() द्वारा बदल दिया गया है की उम्मीद कर रहे हैं? स्ट्रिंग्स अपरिवर्तनीय हैं; इस तरह के .toUpperCase() वापसी नई तारों के रूप में तरीकों, छोड़ने के मूल अन-बार संशोधित:

String c = "IceCream"; 
String d = c.toUpperCase(); 
System.out.println(c); // prints IceCream 
System.out.println(d); // prints ICECREAM 
संबंधित मुद्दे