2010-05-12 25 views
13

इस कोड: इस उत्पादन मेंजावा की कॉन्सैट() विधि कुछ भी क्यों नहीं करती है?

String s = "TEST"; 
String s2 = s.trim(); 

s.concat("ING"); 
System.out.println("S = "+s); 
System.out.println("S2 = "+s2); 

परिणाम:

S = TEST 
S2 = TEST 
BUILD SUCCESSFUL (total time: 0 seconds) 

"टेस्ट" और "आईएनजी" एक साथ concatenated नहीं क्यों हैं?

+2

लिंक में बदल जाएगा लैंग/String.html # concat% 28java.lang.String% 29 –

+0

इसी कारण से 'trim()' कुछ भी नहीं करता है। – shmosel

उत्तर

41

एक स्ट्रिंग immutable है, जिसका अर्थ है आप जावा में एक स्ट्रिंग बदल नहीं सकते। concat() एक नया, समेकित, स्ट्रिंग देता है।

String s = "TEST"; 
String s2 = s.trim(); 
String s3 = s.concat("ING"); 

System.out.println("S = "+s); 
System.out.println("S2 = "+s2); 
System.out.println("S3 = "+s3); 
+0

धन्यवाद .. मेरा संदेह स्पष्ट हो गया है .. :) –

+3

@ सोमा सेखर, अगर इस उत्तर ने आपका प्रश्न हल किया है, तो आपको इसे स्वीकार करना चाहिए। –

8

क्योंकि String अपरिवर्तनीय है - वर्ग String में ऐसी विधियां नहीं हैं जो String ऑब्जेक्ट की सामग्री को बदलती हैं। concat() विधि एक नया String देता है जिसमें ऑपरेशन का परिणाम होता है। इस के बजाय:

s.concat("ING"); 

इस प्रयास करें:

s = s.concat("ING"); 
+0

yup..इस तरीके से काम कर रहे हैं .. थंकू .. –

3

मुझे लगता है कि आप क्या करना चाहते हैं:

s2 = s.concat("ING"); 

concat समारोह स्ट्रिंग रों परिवर्तन नहीं करता है, यह सिर्फ रिटर्न तर्क संलग्न है।

2

concat एक स्ट्रिंग देता है, इसलिए आप मूल रूप से इसे लौटाने के बिना कंसल्ट को कॉल कर रहे हैं। इस प्रयास करें:

String s = "Hello"; 
String str = s.concat(" World"); 
System.out.println(s); 
System.out.println(str); 

प्रिंट चाहिए:

Hello 
Hello World 
0

स्ट्रिंग अपरिवर्तनीय जब concat() obj के रूप में

स्ट्रिंग एस = "abc" किसी भी स्ट्रिंग पर कहा जाता है के रूप में; नई स्ट्रिंग ओबीजे स्ट्रिंग पूल रेफरी में

s = s.concat ("def") द्वारा बनाया गया है; वैल एबीसीडीएफ के साथ एक और स्ट्रिंग ओबीजे बनाया गया है और इसका संदर्भ

1

.concat() विधि नया समेकित मूल्य देता है। वहां आपने s.concat("ING") किया -> यह वापसी मूल्य "परीक्षण" देता है। लेकिन आपको इसे घोषित चर में प्राप्त करना होगा। http://java.sun.com/j2se/1.4.2/docs/api/java/:

आप s=s.concat("ING"); किया तो "एस" का मान "परीक्षण"

प्रलेखन के लिए
संबंधित मुद्दे