我有一个长字符串,我想从中删除一个特定的十六进制字符。
NSString * myString = @"longlongstringwithcharacters\"ofallsorts\"";
有什么建议?
我追求的十六进制字符是 08 ,它对应于退格键。如何使用以下代码代替它?我不知道如何在字符串中表示08:
NSString *stringWithoutSpaces = [myString
stringByReplacingOccurrencesOfString:@" " withString:@""];
编辑:
我会尽力澄清我要做什么。
我试图从作为有效载荷接收的字符串中删除所有出现的与08十六进制相对应的字符。
有效载荷采用字符串格式,我尝试使用Xcode调试器找出字符并查看字符串的十六进制代码,因为在尝试将与字符串相对应的NSData隐式转换为NSDictionary时,存在无效字符。
我不确定如何正确表达问题。
最佳答案
- (NSString *)stringFromHexString:(NSString *)hexString {
// The hex codes should all be two characters.
if (([hexString length] % 2) != 0)
return nil;
NSMutableString *string = [NSMutableString string];
for (NSInteger i = 0; i < [hexString length]; i += 2) {
NSString *hex = [hexString substringWithRange:NSMakeRange(i, 2)];
NSInteger decimalValue = 0;
sscanf([hex UTF8String], "%x", &decimalValue);
[string appendFormat:@"%c", decimalValue];
}
return string;
}
试试这个代码...这将帮助您将十六进制转换为字符串
关于ios - 如何从NSString中删除08十六进制字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29890258/