मेरे पास निम्नलिखित हैं:
string test = "9586-202-10072"
मुझे सभी पात्रों को अंतिम के दाईं ओर कैसे मिलेगा -इसलिए 10072। वर्णों की संख्या हमेशा अंतिम डैश के दाईं ओर अलग होती है।
यह कैसे किया जा सकता है?
मेरे पास निम्नलिखित हैं:
string test = "9586-202-10072"
मुझे सभी पात्रों को अंतिम के दाईं ओर कैसे मिलेगा -इसलिए 10072। वर्णों की संख्या हमेशा अंतिम डैश के दाईं ओर अलग होती है।
यह कैसे किया जा सकता है?
जवाबों:
आप के -साथ अंतिम की स्थिति प्राप्त कर सकते हैं str.LastIndexOf('-')। तो अगला कदम स्पष्ट है:
var result = str.Substring(str.LastIndexOf('-') + 1);
सुधार :
जैसा कि नीचे ब्रायन बताता है, बिना किसी डैश के स्ट्रिंग पर इसका उपयोग करने से उसी स्ट्रिंग को वापस लौटाया जाएगा।
LastIndexOfरिटर्न -1 अगर कुछ नहीं मिला (यह दस्तावेजी व्यवहार है, तो इस पर भरोसा करना सुरक्षित है)। str.Substring(1-1)आप के लिए एक स्ट्रिंग देता है str। कोई आश्चर्य नहीं, यहाँ।
आप LINQ का उपयोग कर सकते हैं, और अपने आप को स्पष्ट पार्सिंग को बचा सकते हैं:
string test = "9586-202-10072";
string lastFragment = test.Split('-').Last();
Console.WriteLine(lastFragment);
मैं देख सकता हूं कि यह पोस्ट 46,000 से अधिक बार देखी गई थी। मैं शर्त लगा सकता हूं कि 46,000 दर्शकों में से कई इस सवाल को केवल इसलिए पूछ रहे हैं क्योंकि वे केवल फ़ाइल नाम चाहते हैं ... और ये उत्तर एक खरगोश छेद हो सकते हैं यदि आप साइन इन का उपयोग करके अपने विकल्प क्रिया को नहीं कर सकते हैं।
यदि आप बस फ़ाइल नाम प्राप्त करना चाहते हैं, तो एक सरल उत्तर है जिसका उल्लेख यहां किया जाना चाहिए। भले ही यह सवाल का सटीक जवाब न हो।
result = Path.GetFileName(fileName);
देख https://msdn.microsoft.com/en-us/library/system.io.path.getfilename(v=vs.110).aspx
String.lastIndexOf विधि देखें
string atest = "9586-202-10072";
int indexOfHyphen = atest.LastIndexOf("-");
if (indexOfHyphen >= 0)
{
string contentAfterLastHyphen = atest.Substring(indexOfHyphen + 1);
Console.WriteLine(contentAfterLastHyphen );
}
मैंने इसके लिए एक स्ट्रिंग एक्सटेंशन बनाया, आशा है कि यह मदद करता है।
public static string GetStringAfterChar(this string value, char substring)
{
if (!string.IsNullOrWhiteSpace(value))
{
var index = value.LastIndexOf(substring);
return index > 0 ? value.Substring(index + 1) : value;
}
return string.Empty;
}
strअशक्त हो या यदि इसमें एक हाइफ़न न हो। (इस मामले में जहां कोई हाइफ़न नहीं है, यह फेंक नहीं देता है; यह पूरे स्रोत स्ट्रिंग को लौटाता है।)