2014-07-07 95 views
2

我是新的iOS開發人員,我正在尋找一個解決方案來比較兩個字符串忽略開頭或結尾的空格。例如,「Hello」==「Hello」應該返回true。比較字符串忽略空格在開頭或結尾

我已經爲一個解決方案進行了serached,但是我沒有在Swift中找到任何東西。由於

+1

考慮修整的字符串。請參閱:http://stackoverflow.com/questions/5756256/objective-c-tr​​im-spaces-from-end-of-a-string – Jack

+1

這裏是一個鏈接到Swift中的字符串引用:http://www.learnswiftonline。 COM /參考導遊/串參考導換迅速/。搜索該頁面的「修剪」。 –

回答

3
NSString *string1 = @" Hello"; 
//remove(trim) whitespaces 
string1 = [string1 stringByReplacingOccurrencesOfString:@" " withString:@""]; 

NSString *string2 = @"Hello "; 
//remove(trim) whitespaces 
string2 = [string1 stringByReplacingOccurrencesOfString:@" " withString:@""] 

// compare strings without whitespaces 
if ([string1 isEuqalToString:string2]) { 
} 

所以,如果你想直接使用它 -

if ([[yourString1 stringByReplacingOccurrencesOfString:@" " withString:@""] isEuqalToString:[yourString2 stringByReplacingOccurrencesOfString:@" " withString:@""]]) { 
// Strings are compared without whitespaces. 
} 

以上將刪除字符串的所有空格,如果你只想刪除開頭和結尾的空格,然後有幾個職位已經上市,您可以創建字符串的一個類別,如下面的堆棧溢出文章中提到 - How to remove whitespace from right end of NSString?

@implementation NSString (TrimmingAdditions) 

- (NSString *)stringByTrimmingLeadingCharactersInSet:(NSCharacterSet *)characterSet { 
    NSUInteger location = 0; 
    NSUInteger length = [self length]; 
    unichar charBuffer[length];  
    [self getCharacters:charBuffer]; 

    for (location; location < length; location++) { 
     if (![characterSet characterIsMember:charBuffer[location]]) { 
      break; 
     } 
    } 

    return [self substringWithRange:NSMakeRange(location, length - location)]; 
} 

- (NSString *)stringByTrimmingTrailingCharactersInSet:(NSCharacterSet *)characterSet { 
    NSUInteger location = 0; 
    NSUInteger length = [self length]; 
    unichar charBuffer[length];  
    [self getCharacters:charBuffer]; 

    for (length; length > 0; length--) { 
     if (![characterSet characterIsMember:charBuffer[length - 1]]) { 
      break; 
     } 
    } 

    return [self substringWithRange:NSMakeRange(location, length - location)]; 
} 

@end 

現在,一旦你有可用的方法,你可以調用這些在你的字符串修剪開頭和結尾的空間,如 -

// trim leading chars 
yourString1 = [yourString1 stringByTrimmingLeadingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 
// trim trainling chars 
yourString1 = [yourString1 stringByTrimmingTrailingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 

// trim leading chars 
yourString2 = [yourString2 stringByTrimmingLeadingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 
// trim trainling chars 
yourString2 = [yourString2 stringByTrimmingTrailingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 

// compare strings 
if([yourString1 isEqualToString: yourString2]) { 

} 
+4

這將刪除字符串中間的空格,您應該使用'stringByTrimmingCharactersInSet'來僅刪除前導和尾部空格。另外...這是甚至在斯威夫特... – Jack

+0

@JackWu錯過了:)要更新 – rishi

4

我建議你用這個斯威夫特代碼字符串修剪空白開始:

stringToTrim.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()) 
+0

這是最好的解決方案 - 空白僅從開始和結束,而不是從字符串中間修剪。 「羅傑兔」成爲「羅傑兔」。 –

相關問題