आप बहुत लचीली खोज-और-प्रतिस्थापन सुविधाओं को बनाने के लिए Matcher.appendReplacement()
/appendTail()
का उपयोग कर सकते हैं।
JavaDoc में उदाहरण इस प्रकार है:
Pattern p = Pattern.compile("cat");
Matcher m = p.matcher("one cat two cats in the yard");
StringBuffer sb = new StringBuffer();
while (m.find()) {
m.appendReplacement(sb, "dog");
}
m.appendTail(sb);
System.out.println(sb.toString());
अब, यह while
पाश अंदर आप अपने आप को तय कर सकते हैं प्रतिस्थापन पाठ है और आधार वास्तविक सामग्री पर जानकारी का मिलान नहीं हुआ जा रहा है।
उदाहरण के लिए आप ,
, cat
याfootball
से मेल खाते हैं और वास्तविक पाश अंदर वास्तविक मैच के आधार पर प्रतिस्थापन पर फैसला करने के लिए पैटर्न (,|cat|football)
इस्तेमाल कर सकते हैं।
आप इस तरह से और अधिक लचीली चीजें बना सकते हैं, जैसे सभी दशमलव संख्याओं को हेक्स संख्याओं या इसी तरह के संचालन के साथ बदलना।
यह नहीं कम के रूप में और सरल अपने कोड के रूप में है, लेकिन आप इसके साथ छोटे और सरल तरीकों का निर्माण कर सकते हैं।
स्रोत
2011-10-05 08:39:51
रनटाइम दक्षता के बारे में आपका प्रश्न है? लचीलापन?कोड शैली? कृपया स्पष्ट करें। – Mac
यह शुद्धता का सवाल भी हो सकता है, क्योंकि एन पास के दौरान किए गए प्रतिस्थापन एक ही पास के दौरान एन जोड़े के प्रदर्शन प्रतिस्थापन के बराबर नहीं हो सकते हैं। – Xion
अद्यतन प्रश्न लेकिन कोड को बेहतर स्टाइल करने के लिए ढूंढ रहे हैं और लचीलापन – Decrypter