在 NSString objc 中获取不可见的十进制值
Get invisible decimal value in NSString objc
我有一个字符串,其名称为随机名称,前缀为不可见的十进制值。小数点 = 名称长度。我需要检索名称。显然它们的长度不同。我想要数组中的名称,所以我的想法是使用 stringByReplacingOccurrencesOfString:withString
。我在名称的开头和结尾实现了 "trunk" 一词。虽然我无法访问名称末尾对应的索引(十进制值),但这是我的代码:
trimmed1 = [[trimmed1 stringByReplacingOccurrencesOfString:sp withString:@"trunk"]mutableCopy];
NSString *trunk = @"trunk%d";// add the ghost decimal at the end of prefix in order to get its value;
NSRange range =[trimmed1 rangeOfString:trunk];
int ghost= [trunk characterAtIndex:5];
NSMutableString *mu = [NSMutableString stringWithString:trimmed1];
[mu insertString : @"trunk" atIndex :range.location+range.length+ ghost];
我收到错误 [__NSCFString insertString:atIndex:]: Range or index out of bounds
。
您误解了 %d
的意思。
在用于创建 字符串的格式中,它表示 "insert the value of an integer argument formatted as a string"。
当将一个字符串与另一个匹配时,它意味着"match the characters %d",即反正也没什么特别的。
您收到错误消息,因为您的字符串不包含字符 "trunk%d"。如果您检查 rangeOfString:
的 return 值,您会发现它是 return 失败指示 - 请阅读文档以了解如何测试该值。
对于匹配任意十进制数的简单任务,请尝试查看 NSString
方法 rangeOfCharactersFromSet:
。
您也可以使用 类 NSScanner
和 NSRegularExpression
来解决这个问题。
HTH
我有一个字符串,其名称为随机名称,前缀为不可见的十进制值。小数点 = 名称长度。我需要检索名称。显然它们的长度不同。我想要数组中的名称,所以我的想法是使用 stringByReplacingOccurrencesOfString:withString
。我在名称的开头和结尾实现了 "trunk" 一词。虽然我无法访问名称末尾对应的索引(十进制值),但这是我的代码:
trimmed1 = [[trimmed1 stringByReplacingOccurrencesOfString:sp withString:@"trunk"]mutableCopy];
NSString *trunk = @"trunk%d";// add the ghost decimal at the end of prefix in order to get its value;
NSRange range =[trimmed1 rangeOfString:trunk];
int ghost= [trunk characterAtIndex:5];
NSMutableString *mu = [NSMutableString stringWithString:trimmed1];
[mu insertString : @"trunk" atIndex :range.location+range.length+ ghost];
我收到错误 [__NSCFString insertString:atIndex:]: Range or index out of bounds
。
您误解了 %d
的意思。
在用于创建 字符串的格式中,它表示 "insert the value of an integer argument formatted as a string"。
当将一个字符串与另一个匹配时,它意味着"match the characters %d",即反正也没什么特别的。
您收到错误消息,因为您的字符串不包含字符 "trunk%d"。如果您检查 rangeOfString:
的 return 值,您会发现它是 return 失败指示 - 请阅读文档以了解如何测试该值。
对于匹配任意十进制数的简单任务,请尝试查看 NSString
方法 rangeOfCharactersFromSet:
。
您也可以使用 类 NSScanner
和 NSRegularExpression
来解决这个问题。
HTH