क्या मुझे कुछ याद आ रहा है, या क्या स्ट्रिंगबिल्डर में एक स्ट्रिंग बी के साथ स्ट्रिंग ए की सभी घटनाओं को प्रतिस्थापित करता है "सामान्य स्ट्रिंग क्लास करता है? स्ट्रिंगबिल्डर फ़ंक्शन को प्रतिस्थापित करना बिल्कुल समान नहीं है। क्या सामान्य स्ट्रिंग क्लास का उपयोग करके कई स्ट्रिंग्स उत्पन्न किए बिना इसे और अधिक कुशलता से कोई रास्ता है?स्ट्रिंगबिल्डर का उपयोग कर स्ट्रिंग की सभी घटनाओं को बदलें?
public static void replaceAll(StringBuilder builder, String from, String to)
{
int index = builder.indexOf(from);
while (index != -1)
{
builder.replace(index, index + from.length(), to);
index += to.length(); // Move to the end of the replacement
index = builder.indexOf(from, index);
}
}
नोट कुछ मामलों में यह lastIndexOf
उपयोग करने के लिए, पीछे से काम कर तेजी से हो सकता है कि:
http://download.oracle.com/javase/1.5.0/docs/api/java /lang/StringBuilder.html मुझे नहीं पता कि मुझे कुछ याद आ रहा है, लेकिन वह फ़ंक्शन मौजूद नहीं है। – garsh0p
आपको क्या लगता है कि ऑब्जेक्ट आवंटन इसे करने का एक कम प्रभावी तरीका है? प्रत्येक "इन-प्लेस" प्रतिस्थापन चरण द्वारा कितने पात्रों की प्रतिलिपि बनाने की आवश्यकता है, इस पर निर्भर करता है कि यह इन-प्लेस ऑपरेशन को भी निष्पादित कर सकता है। – Dirk
'String.replaceAll' चीज़ * regexs * के साथ? मैं 'स्ट्रिंगबिल्डर' और 'स्ट्रिंग' के बीच कनवर्ट करने के ऊपरी हिस्से के बारे में चिंता नहीं करता। –