目标C:用一个反斜杠替换双反斜杠

时间:2016-10-25 09:08:17

标签: ios objective-c nsstring

我正在尝试将一个包含双反斜杠的字符串替换为只有一个反斜杠的字符串,例如:

\\This\\Is\\Not\\Working

要:

\This\Is\Not\Working

使用:

str = [str stringByReplacingOccurrencesOfString:@"\\\\" withString@"\\"];

但由于某种原因,字符串每次都保持不变(使用双反斜杠)。我在这做错了什么?

4 个答案:

答案 0 :(得分:1)

可悲的是,我误解了控制台日志输出。字符串很好,调试器只显示单斜杠作为加倍。 (出于逃避的目的,我想象)。

答案 1 :(得分:0)

以下代码行很好:

NSString *str=@"\\This\\Is\\Not\\Working";

str = [str stringByReplacingOccurrencesOfString:@"\\\\" withString@"\\"];

只需按NSLog或打印检查值,因为在调试控制台中,斜杠表示为双斜杠。

检查图片以获得更清晰的理解:

enter image description here

答案 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:@"\\"]);
  • 第一行是您的用户输入。
  • 第二行将双反斜杠用户输入字符串转换为四个反斜线字符串
  • 第3行简单地用两个反斜杠替换四个反斜杠,这导致打印单斜杠