मुख्य अंतर यह है कि StringBuilder परिवर्तनशील है जबकि स्ट्रिंग अपरिवर्तनीय है।
स्ट्रिंग अपरिवर्तनीय है, अपरिवर्तनीय का अर्थ है यदि आप स्ट्रिंग ऑब्जेक्ट बनाते हैं तो आप इसे संशोधित नहीं कर सकते हैं और यह हमेशा मेमोरी में स्ट्रिंग प्रकार की नई वस्तु बनाता है।
दूसरी ओर, StringBuilder परिवर्तनशील है। मतलब, अगर हम एक स्ट्रिंग बिल्डर ऑब्जेक्ट बनाते हैं तो हम हर बार नया इंस्टेंस बनाए बिना कोई भी ऑपरेशन जैसे इंसर्ट, रिप्लेस या एपेंड कर सकते हैं। यह स्मृति में एक स्थान पर स्ट्रिंग को अद्यतन करेगा स्मृति में नया स्थान नहीं बनाएगा।
उदाहरण
using System; using System.Text; class DemoApplication{ public static void Main(String[] args){ String systemString = "Hello"; StringConcat(systemString); Console.WriteLine("String Class Result: " + systemString); StringBuilder stringBuilderString = new StringBuilder("Hello"); StringBuilderConcat(stringBuilderString); Console.WriteLine("StringBuilder Class Result: " + stringBuilderString); } public static void StringConcat(String systemString){ String appendString = " World"; systemString = String.Concat(systemString, appendString); } public static void StringBuilderConcat(StringBuilder stringBuilderString){ stringBuilderString.Append(" World"); } }
आउटपुट
उपरोक्त उदाहरण का आउटपुट इस प्रकार है -
String Class Result: Hello StringBuilder Class Result: Hello World
-
StringConcat विधि का उपयोग:इस पद्धति में, हम एक स्ट्रिंग "हैलो" पास कर रहे हैं और "systemString =String.Concat(systemString, appendString);" प्रदर्शन कर रहे हैं। जहां एपेंडस्ट्रिंग "विश्व" को संयोजित करने के लिए है। मुख्य () से पारित स्ट्रिंग नहीं बदली है, यह इस तथ्य के कारण है कि स्ट्रिंग अपरिवर्तनीय है . स्ट्रिंग के मान को बदलने से एक और ऑब्जेक्ट बनता है और StringConcat() नई स्ट्रिंग के संदर्भ को संग्रहीत करता है में सिस्टमस्ट्रिंग बनाता है। . लेकिन संदर्भ systemString मुख्य () और StringConcat () में अलग-अलग तारों को संदर्भित करता है।
-
StringBuilderConcat विधि का उपयोग:इस पद्धति में, हम एक स्ट्रिंग "हैलो" पास कर रहे हैं और "stringBuilderString.Append(" World");" प्रदर्शन कर रहे हैं। जो स्ट्रिंग के वास्तविक मान (मुख्य में) को "हैलो वर्ल्ड" में बदल देता है। यह साधारण तथ्य के कारण है कि StringBuilder परिवर्तनशील है और इसलिए इसका मान बदल जाता है।