NSString 格式问题自动追加 \x

Posted

技术标签:

【中文标题】NSString 格式问题自动追加 \\x【英文标题】:NSString Format issue automatically append \xNSString 格式问题自动追加 \x 【发布时间】:2016-04-26 07:44:22 【问题描述】:

我发现这不是预期的事情

代码

NSString *strCrown2 = @"T-#-B-DAC";

当我在那里放置断点并检查我发现如下图所示

有 \x ,它不是字符串的一部分

在控制台显示T-#-B-DAC是正确的

我的问题是为什么 \x 显示在那里?

【问题讨论】:

我不认为 po 输出会造成任何问题:正确的你想要的 @Mile Alter 你有没有找到任何解决方案,我面临着类似的问题,这里没有一个答案对我有用。 @MilanGupta 在我的情况下,问题是,当我复制该文本时,一个隐藏字符也复制了不知道如何,我无法用字符集消除它,解决方案:我用键盘和工作 【参考方案1】:

编辑:-我得到了你的解决方案,你看不到,但是,尝试删除 # 之前的“-”,它将首先删除一个空格,然后您的“-”将被删除。因此,它会在 # 之前占用一个空格

并且,根据苹果文档,检查

NSRegularExpression

所以,它会在 # 之前占用空格,一旦您在调试时获得所需的输出,就将其删除。

希望这些信息对您有所帮助。

编辑:-

把这个写在你的 x 代码中,

NSString *strCrown2 = @"T-#-B-DAC";

【讨论】:

试过但结果相同 -> NSString *strCrown2 = @"T#-B-DAC"; 你删除了一个空格吗? 仍然在那里添加\x10 没有空格 有。只是尝试删除 - 在 # 之前,所以它会删除一个空格。【参考方案2】:

因为#hex color的前缀

可以通过转义序列解决

NSString *strCrown2 = @"T-\#-B-DAC";

strCrown2 = [strCrown2 stringByReplacingOccurrencesOfString:@"\#" withString:@"200"];//outout:@"T-200-B-DAC"

您也可以只 # 不考虑 '\x' 值,如下所示

 NSString *strCrown2 = @"T-#-B-DAC";
 strCrown2 = [strCrown2 stringByReplacingOccurrencesOfString:@"#" withString:@"200"];//outout:@"T-200-B-DAC"

【讨论】:

以后会不会出问题? 您需要添加 \# 以将 # 打印为字符串 你为什么担心 NSLog 你想要显示正确输出的字符串对象,那么你为什么担心呢?【参考方案3】:

\x 用于数字的十六进制表示。

您可以关注字符串说明符的链接here

【讨论】:

【参考方案4】:

我尝试过相同的字符串,可能你没有使用 x-code 7。 我不像你,我认为它显示的是 unicode 字符串。 您可以在 info.plist 中添加字符串。它会起作用的。

【讨论】:

- 现在你得到了解决方案但我不明白,怎么可能以两种不同的方式使用相同的字符串? 两者都是不同的字符串,我检查了两者的长度,发现那里有一个隐藏字符,所以...【参考方案5】:

我解决了

之前

之后

我不知道两个字符串看起来是一样的

【讨论】:

以上是关于NSString 格式问题自动追加 \x的主要内容,如果未能解决你的问题,请参考以下文章

怎样在excel表中数字前自动追加“0”补充位数?

NSString 释放时崩溃

NSString 格式问题

将 NSString 转换为具有日期格式的 NSString 块

自动释放 NSString

NSString - stringWithFormat 自动释放