2010-06-02 21 views
32

चरित्र "।" से पहले रखे स्ट्रिंग में सभी वर्ण को प्रभावी ढंग से कैसे हटाएं?चरित्र से पहले अक्षर हटाएं "।"

इनपुट: Amerika.USA

आउटपुट: संयुक्त राज्य अमेरिका

+2

वहाँ हमेशा है केवल करने के लिए जा:

public static string truncateStringAfterChar(string input, char pivot){ int index = input.IndexOf(pivot); if(index >= 0) { return input.Substring(index + 1); } return input; } 

यह एक के बजाय धुरी के अंतिम घटना के बाद स्ट्रिंग में कटौती:

यह एक धुरी की पहली आवृत्ति के बाद स्ट्रिंग में कटौती एक अवधि हो? –

+0

@ जेम्स ब्लैक: हाँ – loviji

उत्तर

85

आप IndexOf method और Substring method इसलिए की तरह उपयोग कर सकते हैं:

string output = input.Substring(input.IndexOf('.') + 1); 

उपर्युक्त में त्रुटि प्रबंधन नहीं है, इसलिए यदि इनपुट स्ट्रिंग में कोई अवधि मौजूद नहीं है, तो यह समस्याएं पेश करेगी।

+6

@casperOne वास्तव में इंडेक्स नहीं करता है यदि वापसी नहीं हुई है, और स्ट्रिंग्स को सबस्ट्रिंग के संदर्भ में ज़ीरोबैड किया गया है, तो तकनीकी रूप से यदि कोई अवधि नहीं थी तो यह पूरी स्ट्रिंग वापस कर देगी, है ना? मुझे लगता है कि यह तब तक पर्याप्त है जब स्ट्रिंग शून्य नहीं है। – jcolebrand

+0

@ ड्रेचेनस्टर्न: इंडेक्सऑफ -1 वापस नहीं आएगा, और यदि यह सबस्ट्रिंग को पास किया जाता है, तो यह एक ArgumentOutOfRangeException फेंक देगा। – casperOne

+0

@ कैस्परऑन ~ टट टट, इसकी -1 '+ 1' ... तो यह हमेशा शून्य या अधिक होगा। आपका कोड मेरा नहीं है;) – jcolebrand

4
String input = ....; 
int index = input.IndexOf('.'); 
if(index >= 0) 
{ 
    return input.SubString(index + 1); 
} 
10
string input = "America.USA" 
string output = input.Substring(input.IndexOf('.') + 1); 
3
public string RemoveCharactersBeforeDot(string s) 
{ 
string splitted=s.Split('.'); 
return splitted[splitted.Length-1] 
} 
+0

साइड नोट: इसके परिणामस्वरूप बिंदीदार स्ट्रिंग के दोनों (या सभी) हिस्सों को बनाए रखने में परिणाम होता है जो वांछनीय है यदि आपको उन सभी की आवश्यकता है, लेकिन अगर आपको केवल अंतिम की आवश्यकता है तो अनचाहे। – Joey

20

आप इस कोशिश कर सकते:

string input = "lala.bla"; 
output = input.Split('.').Last(); 
+3

यदि आपके पास एक से अधिक 1 अवधि है तो आपको समस्याएं होंगी। –

+0

@ माइककॉल क्यों? .ast() सुनिश्चित करेगा कि आपको अवधि के बाद अंतिम शब्द मिल जाएगा –

2

तरीकों कि, अगर चार मौजूद नहीं है, लौटने के मूल स्ट्रिंग के एक जोड़े।

public static string truncateStringAfterLastChar(string input, char pivot){   
    return input.Split(pivot).Last(); 
} 
संबंधित मुद्दे