2011-09-23 8 views
11

का उपयोग कर स्ट्रिंग में सबस्ट्रिंग पाएं मेरे पास SMITH 09-15 # 4-01H6 अंतिम 07-02-2011.dwg जैसा स्ट्रिंग है और मुझे सबकुछ पहले स्थान सहित FINAL तक प्राप्त करने की आवश्यकता है एफ। तो आउटपुट स्मिथ 09-15 # 4-01H6 मैं यह कैसे प्राप्त कर सकता हूं? string.substring? regex? बहुत धन्यवादसी #

+0

हमें पैटर्न देखने के लिए आपको एक से अधिक उदाहरण प्रदान करने की आवश्यकता है। – Jason

+0

एक सबस्ट्रिंग फ़ंक्शन केवल आपकी मदद करेगा यदि वांछित स्ट्रिंग की लंबाई निरंतर है (या, स्ट्रिंग के अंत से काम कर रही है, यदि आप जिस लंबाई को छोटा करना चाहते हैं वह निरंतर है, जो आपके मामले में अधिक संभावना है)। –

+1

वाह, 7 उत्तरों में लगभग 2 मिनट! – VoodooChild

उत्तर

22

इंडेक्सऑफ ("अंतिम") आपको अंतिम का सूचकांक प्राप्त करेगा। फिर उस इंडेक्स से 0 से सबस्ट्रिंग प्राप्त करें।

अद्यतन: सही स्ट्रिंग कॉम्परिसन विकल्प को न भूलें।

+3

मैं यह साबित करने के लिए "अंतिम" युक्त एक नाम खोज रहा हूं कि यह असफल हो जाएगा ... अभी तक भाग्यशाली नहीं है लेकिन LastIndexOf का उपयोग इंडेक्सऑफ के इंस्टॉलेशन के लिए किया जाना चाहिए। – daniloquio

+0

आप अंतिम रोना करेंगे: http://torrentz.eu/users/finalio jeje को अंतिम नाम वाला कोई नाम नहीं मिला। – daniloquio

+0

यह एक मामला संवेदनशील खोज है, इसलिए केवल तभी वह अपना नाम सभी कैप्स में लिखता है। लेकिन बिंदु पर लिया गया। LastIndexOf() –

3

एक regex शायद मार खत्म हो गया है, एक सरल String.Substring की तरह:

string original = "SMITH 09-15 #4-01H6 FINAL 07-02-2011.dwg"; 
int pos = original.IndexOf("FINAL"); 
string new = original.Substring(0, pos); 
3

इस प्रयास करें:

string data = "SMITH 09-15 #4-01H6 FINAL 07-02-2011.dwg"; 
string result = data.Substring(0, data.IndexOf("FINAL")); 
2

यह यह तुम्हारे लिए क्या करना चाहिए:

string str = "SMITH 09-15 #4-01H6 FINAL 07-02-2011.dwg" 
string substring = str.Substring(0, str.IndexOf("FINAL")) 

कोड में उपरोक्त, सबस्ट्रिंग शुरू होता है इंडेक्स 0 और फिर "अंतिम" (चार प्रारंभ करें) के स्थान की लंबाई जाता है

6

String.Substring() पद्धति का उपयोग करना

String a = "SMITH 09-15 #4-01H6 FINAL 07-02-2011.dwg" 
String b = a.Substring(0, a.IndexOf("FINAL")); 

मैं इस मामले में regex का उपयोग कर के रूप में यह इस कोड से भारी होता है का सुझाव नहीं होगा।

4

निम्नलिखित उदाहरण में, cuttedOne "स्मिथ 09-15 # 4-01H6" के बराबर होगा।

string yourString = "SMITH 09-15 #4-01H6 FINAL 07-02-2011.dwg"; 
string cuttedOne = yourString.Substring(0, yourString.LastIndexOf("FINAL")); 

आपको इंडेक्सऑफ के बजाय LastIndexOf का उपयोग करने की आवश्यकता है; अन्यथा यदि इनपुट "CARFINALTH 09-15 # 4-01H6 अंतिम 07-02-2011.dwg है" तो आप परिणाम "कार" प्राप्त करेंगे।

1

केवल इस स्ट्रिंग के लिए आप F की अनुक्रमणिका पा सकते हैं और String.Substring(0,indexofF) का उपयोग कर सकते हैं।

कोड इस

private static int ReturnIndexOfAGivenCharacterInAString(string str, string s) 
{ 
    int index = str.IndexOf(s); 
    return index; 
} 

private static string ReturnSubStringOfAGivenStringByLength(string str, string s) 
{ 
    int indexOfS = ReturnIndexOfAGivenCharacterInAString(str,s); 
    string subString = str.Substring(0,indexOfS); 
    return subString;  
} 
private static string ReturnSubStringOfMyString() 
{ 
    string myString = "SMITH 09-15 #4-01H6 FINAL 07-02-2011.dwg"; 
    //As I pointed earlier you can use F for this string because there is no other F in it 
    //no need for checking FINAL 
    string subStringOfMyString = ReturnSubStringOfAGivenStringByLength(myString,"F"); 
} 

की तरह अब आप आप क्या चाहते हैं पाने के लिए ReturnSubStringOfMyString() कॉल कर सकते हैं, और तुम भी ReturnSubStringOfAGivenStringByLength(string,string) -इस ReturnSubStringOfAGivenStringByLength("SMITH 09-15 #4-01H6 FINAL 07-02-2011.dwg","F") की तरह किसी भी string- के लिए इस्तेमाल किया जा सकता कॉल कर सकते हैं।