NSString के पहले तीन वर्ण कैसे प्राप्त करें?


104

मैं NSString के पहले तीन वर्ण कैसे वापस कर सकता हूं?

जवाबों:


263
 mystr=[mystr substringToIndex:3];

सुनिश्चित करें कि आपके स्ट्रिंग में कम से कम 3 ch है .. oe यह ऐप को क्रैश कर देगा।

NSsting के संचालन की जाँच करने के लिए यहाँ कुछ अन्य लिंक दिए गए हैं ...

link1

link2

Apple लिंक


21
नोट: "सीमा या सीमा से बाहर" त्रुटि संभव है यदि आप यह सुनिश्चित करने के लिए लंबाई की जांच नहीं करते हैं कि इसमें 3 या अधिक वर्ण हैं
रयान बैवेटा

मैं बहुत नया हूँ और मैंने इस प्रश्न की खोज अपने स्वयं के उत्तर देने के लिए की है, लेकिन क्या यह उत्तर पहले 3 वर्णों को नहीं लेगा? मैं आपके द्वारा निर्धारित वर्णों की संख्या को हटाने के लिए उसी वाक्यविन्यास का उपयोग करता हूं। मैं शायद गलत हूं, लेकिन मुझे लगा कि मुझे कम से कम पूछना चाहिए।

@RyanBavetta यदि आप जिस स्ट्रिंग के साथ यह कर रहे हैं वह उदाहरण के लिए एक तारीख स्ट्रिंग है जिसे आपके कोड ने पहले बनाया था और इसलिए आप जानते हैं कि इसके कितने वर्ण हैं। तो निश्चित रूप से आपको यह जाँचने की जरूरत नहीं है कि यह सही है या नहीं
सुपरटेकनोफॉफ़

1
@GameLoading मैंने आपके उत्तर में कुछ कोड जोड़े हैं ताकि यह शुरुआती लोगों के लिए दुर्घटनाग्रस्त न हो। आशा है कि आप बुरा नहीं
मानेंगे

बस मिस्टर का उपयोग करें [[मिस्ट्र सबस्ट्रिंगटाइंडेक्स: MIN (मिस्ट्रल.लग्मेंट, 3)] क्रैश से बचने के लिए :-)
LaborEtArs

62

सबसे पहले, आपको यह सुनिश्चित करना होगा कि स्ट्रिंग में कम से कम 3 अक्षर हैं:

NSString *fullString = /* obtain from somewhere */;
NSString *prefix = nil;

if ([fullString length] >= 3)
    prefix = [fullString substringToIndex:3];
else
    prefix = fullString;

substringToIndex: एक अपवाद फेंक देंगे यदि आपके द्वारा प्रदान किया जाने वाला सूचकांक स्ट्रिंग के अंत से परे है।


5
या, @ try / @ catch ब्लॉक में लपेटें। बहरहाल, यह दूसरे की तुलना में बेहतर जवाब है।
एलन ज़ीनो

2

सही तरीका है:

text = [text substringToIndex:NSMaxRange([text rangeOfComposedCharacterSequenceAtIndex:2])];

substringToIndex of NSString कोड इकाई द्वारा अनुक्रमण कर रहा है, इमोजी दो कोड इकाइयाँ लेता है।

यह सुनिश्चित करें कि सूचकांक को स्वयं देखें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.