स्वीकार करता है मैं .NET स्ट्रिंग क्लास के लिए एक एक्सटेंशन विधि लिखना चाहता हूं। मैं इसे स्प्लिट विधि पर एक विशेष विविधता बनाना चाहता हूं - एक जो बचने से पहले बचने वाले चरित्र का उपयोग करते समय स्ट्रिंग को विभाजित करने से बचने के लिए एक बच निकलने वाला चरित्र लेता है।सी # विस्तार विधि - स्ट्रिंग स्प्लिट जो एस्केप कैरेक्टर
इसे लिखने का सबसे अच्छा तरीका क्या है? मैं इसके संपर्क में सबसे अच्छा गैर-रेगेक्स तरीका के बारे में उत्सुक हूं।
एक हस्ताक्षर की तरह साथ कुछ ...
public static string[] Split(this string input, string separator, char escapeCharacter)
{
// ...
}
अद्यतन: क्योंकि यह टिप्पणी, एस्केपिंग ...
सी # में जब गैर विशेष बचने पात्रों में से एक में आया आपको मिल त्रुटि - सीएस 1009: अपरिचित बचने का अनुक्रम।
आईई जेस्क्रिप्ट में भागने वाले पात्र फेंक दिए गए हैं। जब तक आप कोशिश नहीं करते हैं और फिर आपको "अपेक्षित हेक्साडेसिमल अंक" त्रुटि मिलती है। मैंने फ़ायरफ़ॉक्स का परीक्षण किया और यह वही व्यवहार है।
मैं इस विधि को बहुत क्षमा करने और जावास्क्रिप्ट मॉडल का पालन करना चाहता हूं। यदि आप एक गैर-विभाजक से बचते हैं तो इसे केवल "दयालु" भागने वाले चरित्र को हटा देना चाहिए।
ऐसा लगता है कि आप यह मान रहे हैं कि किसी भी समय बचने वाला चरित्र दिखाई देता है, इसके बाद विभाजक स्ट्रिंग होती है। क्या होगा अगर यह नहीं है? – tvanfosson
मैं केवल प्रश्न में क्या चल रहा हूं - अगर विभाजक चरित्र विभाजक से पहले प्रकट होता है, तो उसे विभाजित करने के लिए उस विभाजक को उपयोग करने से रोकना चाहिए। मैं बचने वाले चरित्र को हटाने या इसे किसी अन्य तरीके से संसाधित करने की कोशिश नहीं करता हूं। बेवकूफ, शायद, लेकिन यह वह सारी जानकारी है जो हमें मिली है। –
कूल, एक स्ट्रिंग सरणी लौटने पर ienumberable का लाभ क्या है? – rizzle