2012-05-03 34 views
1

我在替換字符串K90wuRcDX43cqDB7xkjReuzb\/nDaC0xc7Bqxi4Ft0T6EscKzEBXBJ6k8fFLl6j0S中的反斜槓時遇到問題。(iOS)在字符串中跳出反斜槓時出錯

如果我手動逃避字符串中的反斜槓我沒有問題,

NSString *mytoken = @"K90wuRcDX43cqDB7xkjReuzb\\/nDaC0xc7Bqxi4Ft0T6EscKzEBXBJ6k8fFLl6j0S"; 
NSLog(@"mytoken %@",mytoken); 
    mytoken K90wuRcDX43cqDB7xkjReuzb\/nDaC0xc7Bqxi4Ft0T6EscKzEBXBJ6k8fFLl6j0S 

但是,如果我嘗試以編程方式做到這一點,然後我無法逃避的反斜槓(我試過的一切:CFString字符串,stringByReplacingOccurrencesOfStringreplaceOccurrencesOfString

NSMutableString *mytokenOrig = [NSMutableString stringWithFormat:@"K90wuRcDX43cqDB7xkjReuzb\/nDaC0xc7Bqxi4Ft0T6EscKzEBXBJ6k8fFLl6j0S"]; 
[mytokenOrig replaceOccurrencesOfString:@"\\" withString:@"\\\\" options:NSCaseInsensitiveSearch range:(NSRange){0,[mytokenOrig length]}]; 
NSLog(@"mytokenOrig %@",mytokenOrig); 

mytokenOrig K90wuRcDX43cqDB7xkjReuzb/ 
nDaC0xc7Bqxi4Ft0T6EscKzEBXBJ6k8fFLl6j0S 

注:我有這個令牌追加到一個字符串,並計算哈希,所以使它工作是如此重要。

回答

0

這是因爲mytokenOrig不包含反斜槓,它已包含轉義的換行符。

[mytokenOrig replaceOccurrencesOfString:@"\n" withString:@"\\n" options:NSCaseInsensitiveSearch range:(NSRange){0,[mytokenOrig length]}]; 


不過,你不需要(重新)逃跑的字符串。 Escape characters是爲了能夠在代碼中編寫特殊字符。