Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何从NSString中删除十六进制字符_Ios_Objective C_Nsstring_Hex - Fatal编程技术网

Ios 如何从NSString中删除十六进制字符

Ios 如何从NSString中删除十六进制字符,ios,objective-c,nsstring,hex,Ios,Objective C,Nsstring,Hex,我面临一个与字符串中的某些十六进制值相关的问题,我需要从NSString中删除十六进制字符 问题是当我打印对象时,它打印为“空行”。在调试模式下,它显示如下: 那么我怎样才能从字符串中删除它呢 编辑 修剪空白: NSLog的结果是: 2015-12-14 15:37:10.710 MyApp[2731:82236]tmp:“ 数据库: 先前的问题: 我不确定您到底在寻找什么,但是如果您想删除所有控制字符,那么 string = [[string componentsSeparatedByCh

我面临一个与字符串中的某些十六进制值相关的问题,我需要从NSString中删除十六进制字符

问题是当我打印对象时,它打印为“空行”。在调试模式下,它显示如下:

那么我怎样才能从字符串中删除它呢

编辑

修剪空白:

NSLog的结果是:

2015-12-14 15:37:10.710 MyApp[2731:82236]tmp:“

数据库:

先前的问题:

我不确定您到底在寻找什么,但是如果您想删除所有控制字符,那么

string = [[string componentsSeparatedByCharactersInSet:[NSCharacterSet controlCharacterSet]] componentsJoinedByString:@""]
如果您需要更快,并且确保控制字符仅位于字符串的开头和结尾,那么

string = [string stringByTrimmingCharactersInSet:[NSCharacterSet controlCharacterSet]];
注意:删除所有控制字符将删除所有新行(
\n


发件人:

这些字符特别是Unicode值U+0000到U+001F和U+007F到U+009F

您遇到问题的值是
\x06
,它是


如果只想删除
\x06
,则始终可以为其创建一个字符集

NSCharacterSet *hex6 = [NSCharacterSet characterSetWithCharactersInString:@"\x06"];
string = [[string componentsSeparatedByCharactersInSet:hex6] componentsJoinedByString:@""]

由于数据集显然有垃圾值,因此可以使用此方法检查字符串是否有效。定义您的验证标准,不要接受垃圾值。但正如gnasher之前所建议的,您应该查找导致在数据库中插入垃圾数据的错误。完成后,请检查输入字符串是否与定义的条件匹配。如果有,做你想做的。如果没有,就继续前进

-(BOOL) isValidString: (NSString*) input
{
         NSMutableCharacterSet *validSpecialChars = [NSMutableCharacterSet characterSetWithCharactersInString:@"_~.,"];//Add your desired characters here
         [validSpecialChars formUnionWithCharacterSet:[NSCharacterSet alphanumericCharacterSet]];
         return [[input stringByTrimmingCharactersInSet:validSpecialChars] isEqualToString:@""];
}

如果字符串仅包含定义的字符,则返回true。如果它包含任何其他字符(垃圾或无效),它将返回false。

首先,不要信任Xcode调试器。打印characterAtIndex:0以确保您真正拥有您认为拥有的内容


第二,删除东西是很好的,但你是在用一种症状来治疗。你真的应该试着弄清楚_lastUpdatedBy的内容是从哪里来的,为什么它是这样的。你可能有一个严重的错误在这里,并试图掩盖它。例如,可能有一个bug存储垃圾数据而不是正确的数据,而您只是在掩盖这个bug

如果你不能给出答案,为什么是否定的?model.lastupdatedby是字符串吗?是的,但显示得像一个标记点string@NetDemo你能分享一下你是如何创建这个字符串的吗?我想你是在复制其他stringHi Jeffery,你是“\x06”控制角色吗?我不认识其他控制者,所以……你说得对。我需要检查该值插入错误的位置。我去查一下。Thnks:)