我正在尝试将一个包含双反斜杠的字符串替换为只有一个反斜杠的字符串,例如:
\\This\\Is\\Not\\Working
要:
\This\Is\Not\Working
使用:
str = [str stringByReplacingOccurrencesOfString:@"\\\\" withString@"\\"];
但由于某种原因,字符串每次都保持不变(使用双反斜杠)。我在这做错了什么?
答案 0 :(得分:1)
可悲的是,我误解了控制台日志输出。字符串很好,调试器只显示单斜杠作为加倍。 (出于逃避的目的,我想象)。
答案 1 :(得分:0)
以下代码行很好:
NSString *str=@"\\This\\Is\\Not\\Working";
str = [str stringByReplacingOccurrencesOfString:@"\\\\" withString@"\\"];
只需按NSLog
或打印检查值,因为在调试控制台中,斜杠表示为双斜杠。
检查图片以获得更清晰的理解:
答案 2 :(得分:0)
NSString *Str = @"\\This\\Is\\Not\\Working";
NSLog(@"%@",Str);// print:-\This\Is\Not\Working
Str = [Str stringByReplacingOccurrencesOfString:@"\\\\" withString:@"\\"];// in this no replace occurres
NSLog(@"%@",Str); // print:-\This\Is\Not\Working
NSString *Str1 = @"\\\\This\\\\Is\\\\Not\\\\Working";
NSLog(@"%@",Str1);// print:-\\This\\Is\\Not\\Working
Str1 = [Str1 stringByReplacingOccurrencesOfString:@"\\\\" withString:@"\\"];
NSLog(@"%@",Str1);// print:-\This\Is\Not\Working
答案 3 :(得分:0)
试试这个:
NSString *str = @"\\This\\Is\\Not\\Working";
str = [str stringByReplacingOccurrencesOfString:@"\\" withString:@"\\\\"];
NSLog(@"%@", [str stringByReplacingOccurrencesOfString:@"\\\\" withString:@"\\"]);