जवाबों:
आप की -hasPrefix:
विधि का उपयोग कर सकते हैं NSString
:
उद्देश्य सी:
NSString* output = nil;
if([string hasPrefix:@"*"]) {
output = [string substringFromIndex:1];
}
स्विफ्ट:
var output:String?
if string.hasPrefix("*") {
output = string.substringFromIndex(string.startIndex.advancedBy(1))
}
आप उपयोग कर सकते हैं:
NSString *newString;
if ( [[myString characterAtIndex:0] isEqualToString:@"*"] ) {
newString = [myString substringFromIndex:1];
}
हैप्रिफ़िक्स विशेष रूप से अच्छी तरह से काम करता है। उदाहरण के लिए यदि आप एक HTTP url की तलाश में थे NSString
, तो आप http के साथ शुरू होने वाले तत्वों का पता लगाने के componentsSeparatedByString
लिए एक a NSArray
और aerate को बनाने के लिए उपयोग करेंगे hasPrefix
।
NSArray *allStringsArray =
[myStringThatHasHttpUrls componentsSeparatedByString:@" "]
for (id myArrayElement in allStringsArray) {
NSString *theString = [myArrayElement description];
if ([theString hasPrefix:@"http"]) {
NSLog(@"The URL is %@", [myArrayElement description]);
}
}
hasPrefix
एक बूलियन मान लौटाता है जो इंगित करता है कि क्या दिए गए स्ट्रिंग रिसीवर के शुरुआती वर्णों से मेल खाते हैं।
- (BOOL)hasPrefix:(NSString *)aString,
पैरामीटर aString
एक स्ट्रिंग है जिसे आप रिटर्न वैल्यू के लिए देख रहे हैं यदि हाँ, तो स्ट्रिंग रिसीवर के शुरुआती वर्णों से मेल खाती है, अन्यथा नहीं। aString
खाली होने पर रिटर्न नहीं ।
का उपयोग करें characterAtIndex:
। यदि पहला वर्ण तारांकन है, substringFromIndex:
तो स्ट्रिंग '' * प्राप्त करने के लिए उपयोग करें।
एक और दृष्टिकोण यह करने के लिए ..
क्या यह किसी की मदद कर सकता है ...
if ([[temp substringToIndex:4] isEqualToString:@"http"]) {
//starts with http
}
अधिक सामान्य उत्तर के रूप में, हैप्रिफ़िक्स विधि का उपयोग करके देखें। उदाहरण के लिए, नीचे दिया गया कोड यह देखने के लिए जांचता है कि क्या कोई स्ट्रिंग 10 से शुरू होती है, जो एक निश्चित समस्या की पहचान करने के लिए उपयोग किया जाने वाला त्रुटि कोड है।
NSString* myString = @"10:Username taken";
if([myString hasPrefix:@"10"]) {
//display more elegant error message
}
यह मदद कर सकता है? :)
केवल इंडेक्स 0 पर वर्ण खोजें और उस मान की तुलना करें जिसकी आप तलाश कर रहे हैं!
यह अच्छा सा कोड मुझे संयोग से मिला, और मैंने अभी तक इसे स्टैक पर सुझाया है। यह केवल तभी काम करता है जब आप जिन पात्रों को हटाना या बदलना चाहते हैं, वे मौजूद हैं, जो कई परिदृश्यों में सुविधाजनक है। यदि वर्ण मौजूद नहीं है, तो यह आपके NSString को परिवर्तित नहीं करेगा:
NSString = [yourString stringByReplacingOccurrencesOfString:@"YOUR CHARACTERS YOU WANT TO REMOVE" withString:@"CAN either be EMPTY or WITH TEXT REPLACEMENT"];
इस तरह से मैं इसका उपयोग करता हूं:
//declare what to look for
NSString * suffixTorRemove = @"</p>";
NSString * prefixToRemove = @"<p>";
NSString * randomCharacter = @"</strong>";
NSString * moreRandom = @"<strong>";
NSString * makeAndSign = @"&amp;";
//I AM INSERTING A VALUE FROM A DATABASE AND HAVE ASSIGNED IT TO returnStr
returnStr = [returnStr stringByReplacingOccurrencesOfString:suffixTorRemove withString:@""];
returnStr = [returnStr stringByReplacingOccurrencesOfString:prefixToRemove withString:@""];
returnStr = [returnStr stringByReplacingOccurrencesOfString:randomCharacter withString:@""];
returnStr = [returnStr stringByReplacingOccurrencesOfString:moreRandom withString:@""];
returnStr = [returnStr stringByReplacingOccurrencesOfString:makeAndSign withString:@"&"];
//check the output
NSLog(@"returnStr IS NOW: %@", returnStr);
यह एक लाइन एक में तीन क्रियाओं को करने के लिए सुपर आसान है:
NSString* expectedString = nil;
if([givenString hasPrefix:@"*"])
{
expectedString = [givenString substringFromIndex:1];
}
hasPrefix:@"word"
आप एक में संग्रहीत कई मूल्यों की जांच करते हैंNSArray
? उदाहरण के लिएNSArray *words = [NSArray arrayWithObjects:@"foo",@"bar",@"baz",nil];
:?