如何在NSString中替换\ xa0字符的出现

iOS*_*com 0 cocoa cocoa-touch objective-c nsstring

我已经看过这个问题,但没有解决方案.这是问题所在.

po [myNumberFormatter stringFromNumber:myNumber]
Run Code Online (Sandbox Code Playgroud)

输出 - >(id)$ 4 = 1.500,00

p (char) [(NSString *)[myNumberFormatter stringFromNumber:myNumber] characterAtIndex:1]
Run Code Online (Sandbox Code Playgroud)

输出 - >(char)$ 5 ='\ xa0'

po [(NSString *)[myNumberFormatter stringFromNumber:myNumber] stringByReplacingOccurrencesOfString:@"\xa0" withString:@" "]
Run Code Online (Sandbox Code Playgroud)

输出 - >(id)$ 6 = 1.500,00

有一点需要注意的是,在屏幕上,值1.500,00看起来像1 500,00.但有没有办法将'\ xa0'字符转换为字符串中的@""?

以下解决方案已经有效,但它存在将未包含的所有内容转换为空白字符的问题.

po [(NSString *)[myNumberFormatter stringFromNumber:myNumber] stringByReplacingSequenceOfCharactersInSet:(NSCharacterSet *)[[NSCharacterSet characterSetWithCharactersInString:@"0123456789,."] invertedSet] with:@" "]
Run Code Online (Sandbox Code Playgroud)

编辑 --------------

我已经尝试了下面的答案,我认为这是错误的

po [(NSString *)[numberFormatter stringFromNumber:theNumber] stringByReplacingOccurrencesOfString:@"\u00a0" withString:@" "] 
Run Code Online (Sandbox Code Playgroud)

仍然产生相同的结果(\ xa0 char仍未删除).但是当我没有将它放在调试器中,而是将其放在代码中的NSString中时,存储了正确的答案并删除了\ xa0字符.猜猜我不应该单独依赖调试器日志.

rma*_*ddy 5

NSString *str = // string to cleanup
str = [str stringByReplacingOccurrencesOfString:@"\u00a0" withString:@" "];
Run Code Online (Sandbox Code Playgroud)

\ u00a0将在编译时被替换为实际的不间断空格.