Jawaban:
Anda dapat menggunakan -hasPrefix:
metode NSString
:
Tujuan-C:
NSString* output = nil;
if([string hasPrefix:@"*"]) {
output = [string substringFromIndex:1];
}
Cepat:
var output:String?
if string.hasPrefix("*") {
output = string.substringFromIndex(string.startIndex.advancedBy(1))
}
Kamu bisa memakai:
NSString *newString;
if ( [[myString characterAtIndex:0] isEqualToString:@"*"] ) {
newString = [myString substringFromIndex:1];
}
hasPrefix berfungsi dengan baik. misalnya jika Anda sedang mencari url http di NSString
, Anda akan menggunakan componentsSeparatedByString
untuk membuat NSArray
dan beralih menggunakan array hasPrefix
untuk menemukan elemen yang dimulai dengan 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
mengembalikan nilai Boolean yang menunjukkan apakah string yang diberikan cocok dengan karakter awal penerima.
- (BOOL)hasPrefix:(NSString *)aString,
parameter aString
adalah string yang Anda cari Nilai Pengembalian adalah YA jika aString cocok dengan karakter awal penerima, sebaliknya TIDAK. Mengembalikan TIDAK jika aString
kosong.
Gunakan characterAtIndex:
. Jika karakter pertama adalah tanda bintang, gunakan substringFromIndex:
untuk mendapatkan string tanpa '*'.
Pendekatan lain untuk melakukannya ..
Semoga itu membantu seseorang ...
if ([[temp substringToIndex:4] isEqualToString:@"http"]) {
//starts with http
}
Sebagai jawaban yang lebih umum, coba gunakan metode hasPrefix. Sebagai contoh, kode di bawah ini memeriksa untuk melihat apakah sebuah string dimulai dengan 10, yang merupakan kode kesalahan yang digunakan untuk mengidentifikasi masalah tertentu.
NSString* myString = @"10:Username taken";
if([myString hasPrefix:@"10"]) {
//display more elegant error message
}
Ini mungkin membantu? :)
Cukup cari karakter di indeks 0 dan bandingkan dengan nilai yang Anda cari!
Sedikit kode yang bagus ini saya temukan secara kebetulan, dan saya belum melihatnya disarankan di Stack. Ini hanya berfungsi jika karakter yang ingin Anda hapus atau ubah ada, yang nyaman dalam banyak skenario. Jika karakter tidak ada, itu tidak akan mengubah NSString Anda:
NSString = [yourString stringByReplacingOccurrencesOfString:@"YOUR CHARACTERS YOU WANT TO REMOVE" withString:@"CAN either be EMPTY or WITH TEXT REPLACEMENT"];
Ini adalah bagaimana saya menggunakannya:
//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);
Baris ini sangat mudah untuk melakukan tiga tindakan dalam satu:
NSString* expectedString = nil;
if([givenString hasPrefix:@"*"])
{
expectedString = [givenString substringFromIndex:1];
}
hasPrefix:@"word"
Anda memeriksa beberapa nilai yang disimpan dalam suatuNSArray
? Sebagai contoh:NSArray *words = [NSArray arrayWithObjects:@"foo",@"bar",@"baz",nil];
?