2009-07-02 11 views
64

मेरे पास इस तरह की एक स्ट्रिंग है "ए राहुल वीएएएस"nsstring से पहले 3 वर्णों को कैसे निकालें?

और मैं "ए" और "ए" के बाद की जगह को हटाना चाहता हूं। ताकि नई स्ट्रिंग "राहुल वीएएएस"

मैं इसे कैसे प्राप्त करूं?

उत्तर

232

आप NSString उदाहरण तरीकों का उपयोग कर सकते हैं substringWithRange: या substringFromIndex:

NSString *str = @"A. rahul VyAs"; 
NSString *newStr = [str substringWithRange:NSMakeRange(3, [str length]-3)]; 

या

NSString *str = @"A. rahul VyAs"; 
NSString *newStr = [str substringFromIndex:3]; 
+2

मैंने substringFromIndex पर चरित्र के लिए लगभग चरित्र का उत्तर दिया: भाग, तो हटा दिया और आपके उत्तर को ऊपर उठाया क्योंकि यह अधिक पूर्ण है – Xetius

+0

धन्यवाद। –

+12

आपको यह भी जांचना चाहिए कि स्ट्रिंग में कम से कम 3 वर्ण हैं या नहीं। –

2

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

char *string=[@"A. rahul VyAs" cStringUsingEncoding:NSUTF8StringEncoding]; 
char *subString=&name[3]; 
NSString *newString=[NSString stringWithCString:subString encoding:NSUTF8StringEncoding]; 
1

यह एक समाधान मैं नियमित रूप से दूर करने के लिए विशेष रूप से देखा है उपसर्ग होता है और answ को हल करता है प्रश्न पर मैं कैसे हटा सकता हूं "ए। ए "?

NSString * name = @"A. rahul VyAs"; 
NSString * prefixToRemove = @"A. "; 
name = [name stringByReplacingOccurrencesOfString:prefixToRemove withString:@""]; 

इस कोड को निकाल देंगे क्या आप इसे/परिवर्तन दूर करने के लिए इस तरह के रूप बताती हैं कि वर्ण सेट मौजूद है," ", भले ही तीन अक्षरों (या अधिक/कम) स्ट्रिंग के बीच में हैं।

आप rahul दूर करने के लिए चाहते हैं, तो आप कर सकते हैं। ऐसा नहीं है कि में विविध आप सटीक रूप से निर्दिष्ट क्या आप निकालने या बदलने चाहते हो, और यदि यह स्ट्रिंग में कहीं भी मौजूद है, तो इसे हटा दिया जाएगा या बदला जाएगा।

यदि आप केवल पाठ के सामने से हटाए गए वर्णों की एक निश्चित निर्दिष्ट संख्या चाहते हैं जो हमेशा यादृच्छिक या अज्ञात होते हैं, तो [स्ट्रिंग लंबाई] विधि शीर्ष उत्तर है।

यदि आप को हटाना चाहते हैं या कुछ वर्ण जो बार-बार अपील करते हैं आर, जिस विधि का मैंने उपयोग किया है वह सक्षम होगा, दस्तावेज़ संपादकों पर वर्डसेर्च के समान।

myString = [myString subStringFromIndex:3] 

यह है कि:

+0

यह केवल तभी काम करेगा जब स्ट्रिंग "ए" से शुरू होती है और इसमें कहीं भी "ए" नहीं होता है। उदाहरण के लिए, यह "BlahA। हैलो" – Fogmeister

+0

ठीक है, इसलिए मैं इन दो तारों से पहले तीन वर्णों को हटाना चाहता हूं ... "हैलो, दुनिया!" और "फू बार"। आप अपने समाधान के साथ ऐसा कैसे करेंगे? – Fogmeister

+0

@Fogmeister, अद्यतन पढ़ें। मुद्दा यह है कि, यदि कोई सामान्य चरित्र सेट या कुछ विशिष्ट है, जैसा कि पूछे गए सवाल ने ए को बताया है। ', आप बिना किसी गिनती को हटा सकते हैं। यह सिर्फ एक और सुझाव है, निराश होने की कोई आवश्यकता नहीं है :-) –

-1

यह इस आसान है।

+5

यह पहले ही स्वीकार किए गए उत्तर में है ... – brandonscript

संबंधित मुद्दे