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