IT story

NSString이 특정 문자로 시작하는지 확인하는 방법

hot-time 2020. 5. 1. 08:06
반응형

NSString이 특정 문자로 시작하는지 확인하는 방법


NSString이 특정 문자 (문자 *)로 시작하는지 어떻게 확인합니까?

*는 셀 유형의 표시기이므로 *가없는이 NSString의 내용이 필요하지만 *가 존재하는지 알아야합니다.


다음 -hasPrefix:방법을 사용할 수 있습니다 NSString.

목표 -C :

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];
}

hasPrefix 가 특히 잘 작동합니다. 예를 들어 당신이에 HTTP URL을 찾고 있다면 NSString, 당신은 사용하는 것이 componentsSeparatedByString을 생성 NSArray하고, 반복 처리하여 배열 hasPrefixhttp로 시작하는 요소를 찾을 수 있습니다.

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이 수신자의 시작 문자와 일치하면 리턴 값은 YES이고, 그렇지 않으면 NO입니다. aString비어 있으면 NO를 반환합니다 .


사용하십시오 characterAtIndex:. 첫 번째 문자가 별표이면 substringFromIndex:문자열 sans '*'를 얻는 데 사용 하십시오.


NSString *stringWithoutAsterisk(NSString *string) {
    NSRange asterisk = [string rangeOfString:@"*"];
    return asterisk.location == 0 ? [string substringFromIndex:1] : string;
}

또 다른 접근 방식 ..

누군가를 도울 수 있습니까?

if ([[temp substringToIndex:4] isEqualToString:@"http"]) {
  //starts with http
}

보다 일반적인 답변으로 hasPrefix 메소드를 사용해보십시오. 예를 들어 아래 코드는 문자열이 10으로 시작하는지 확인하여 특정 문제를 식별하는 데 사용되는 오류 코드입니다.

NSString* myString = @"10:Username taken";

if([myString hasPrefix:@"10"]) {
      //display more elegant error message
}

도움이 될까요? :)

http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/characterAtIndex :

Just search for the character at index 0 and compare it against the value you're looking for!


This nice little bit of code I found by chance, and I have yet to see it suggested on Stack. It only works if the characters you want to remove or alter exist, which is convenient in many scenarios. If the character/s does not exist, it won't alter your NSString:

NSString = [yourString stringByReplacingOccurrencesOfString:@"YOUR CHARACTERS YOU WANT TO REMOVE" withString:@"CAN either be EMPTY or WITH TEXT REPLACEMENT"];

This is how I use it:

//declare what to look for
NSString * suffixTorRemove = @"</p>";
NSString * prefixToRemove = @"<p>";
NSString * randomCharacter = @"</strong>";
NSString * moreRandom = @"<strong>";
NSString * makeAndSign = @"&";

//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);

This one line is super easy to perform three actions in one:

  1. Checks your string for the character/s you do not want
  2. Can replaces them with whatever you like
  3. Does not affect surrounding code

NSString* expectedString = nil;
if([givenString hasPrefix:@"*"])
{
   expectedString = [givenString substringFromIndex:1];
}

참고URL : https://stackoverflow.com/questions/2503436/how-to-check-if-nsstring-begins-with-a-certain-character

반응형