[objective-c] 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이 수신자의 시작 문자와 일치하면 리턴 값은 예이고, 그렇지 않으면 아니오입니다. 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
}