stringbyreplacingoccurrencesofstring不适用于iphone中的\

时间:2013-06-06 11:32:38

标签: ios objective-c nsstring

我正在尝试在我的代码中用“\”替换“\”,同时准备一个json字符串将其传递给.NET服务器,但它无效... 我的输入是“As'@ k”,我需要得到“As \'@ k”作为输出..我的代码在下面

NSString *myString=@"As'@k";
NSString *tempString=@"\'";
myString=[myString stringByReplacingOccurrencesOfString:@"'" withString:tempString];
NSLog(@"MYSTRING: %@",myString);

没有输出为“As \'@ k”。为什么呢?

帮助我..

5 个答案:

答案 0 :(得分:4)

由于\是用于转义的特殊字符,因此如果需要反斜杠字符,则需要使用\\

NSString *tempString=@"\\'";

答案 1 :(得分:1)

   NSString *myString=@"As'@k";
   myString=[myString stringByReplacingOccurrencesOfString:@"'" withString:@"\\'"];
   NSLog(@"MYSTRING: %@",myString);

答案 2 :(得分:0)

你需要使用@“\\”,因为\是一个转义符,所以你需要转义它,否则会被忽略

答案 3 :(得分:0)

试试这个:

NSString *myString=@"As'@k";
NSString *tempString=@"\\'";   //because it is escape sequence character
myString=[myString stringByReplacingOccurrencesOfString:@"'" withString:tempString];
NSLog(@"MYSTRING: %@",myString);

答案 4 :(得分:-2)

here

的项目中包含regexkit lite

在项目中包含头文件

#import "RegexKitLite.h"

在代码中添加以下方法。

-(NSString*)backSlashCorrectionForString:(NSString*)originalString
{
   NSError *error = nil;
    NSRegularExpression *regex =
        [NSRegularExpression 
  regularExpressionWithPattern:@"\s" 
                       options:NSRegularExpressionCaseInsensitive error:&error];
    NSString *newString =
        [regex stringByReplacingMatchesInString:originalString
        options:0 range:NSMakeRange(0, [originalString length]) withTemplate:@"\\s"];

    //NSLog(@"New string: %@",newString);
    return newString;
}