回答:
次の-hasPrefix:
方法を使用できますNSString
。
Objective-C:
NSString* output = nil;
if([string hasPrefix:@"*"]) {
output = [string substringFromIndex:1];
}
迅速:
var output:String?
if string.hasPrefix("*") {
output = string.substringFromIndex(string.startIndex.advancedBy(1))
}
hasPrefixは特によく機能します。たとえば、httpのURLをで探しているNSString
場合は、を使用componentsSeparatedByString
しNSArray
て配列を作成し、hasPrefix
httpで始まる要素を見つけるために配列を反復します。
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,
parameter aString
は、探している文字列です。戻り値は、aStringがレシーバーの開始文字と一致する場合はYES、そうでない場合はNOです。aString
空の場合はNOを返します。
を使用しcharacterAtIndex:
ます。最初の文字がアスタリスクの場合、substringFromIndex:
文字列sans '*'を取得するために使用します。
これは役立つでしょうか?:)
インデックス0の文字を検索して、探している値と比較してください。
私がたまたま見つけたこの素敵な小さなコードは、Stackで提案されたコードをまだ見ていません。削除または変更したい文字が存在する場合にのみ機能します。これは多くのシナリオで便利です。文字が存在しない場合、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);
この1行は、3つのアクションを1つで実行するのが非常に簡単です。
NSString* expectedString = nil;
if([givenString hasPrefix:@"*"])
{
expectedString = [givenString substringFromIndex:1];
}
hasPrefix:@"word"
ますが、代わりにNSArray
?例:NSArray *words = [NSArray arrayWithObjects:@"foo",@"bar",@"baz",nil];
?