stringByReplacingOccurrencesOfString不适用于空格,即" "在客观c

时间:2017-01-31 14:49:13

标签: ios objective-c nsstring

- (void)contactPicker:(CNContactPickerViewController *)picker didSelectContactProperty:(CNContactProperty *)contactProperty;

{
    [self dismissViewControllerAnimated:YES completion: nil];
    CNLabeledValue *phoneNumberValue = contactProperty.value;
    NSString *contactString = [phoneNumberValue valueForKey:@"_stringValue"];

    contactString = [contactString stringByReplacingOccurrencesOfString:@"-" withString:@""];
    contactString = [contactString stringByReplacingOccurrencesOfString:@" " withString:@""]; // This line of code is not working properly
    contactString = [contactString stringByReplacingOccurrencesOfString:@"(" withString:@""];
    contactString = [contactString stringByReplacingOccurrencesOfString:@")" withString:@""];
    txtRecipient.text = contactString;
}

这是我的代码。我正在使用contactPicker从电话簿中选择一个联系人。然后我将它存储到字符串变量中。之后,我使用stringByReplacingOccurrencesOfString从字符串值中删除破折号,括号和空格。除了这一行,每件事情都很好:

contactString = [contactString stringByReplacingOccurrencesOfString:@" " withString:@""];

在这行代码之后,contactString保持不变,即空格没有从字符串中删除。我也试过componentsSeparatedByString函数,但它只返回1个字符。即,

NSArray *components = [dateString componentsSeparatedByString:@" "];

components.length返回1。

希望你理解我的问题。有没有其他方法可以从字符串中删除空格?任何形式的帮助都是值得的。感谢。

1 个答案:

答案 0 :(得分:1)

看起来这不是标准空间。 试试这个:

  NSMutableCharacterSet* set = [NSMutableCharacterSet whitespaceCharacterSet];
  [set addCharactersInString:@"()-"];
  NSMutableString * contactString = [[phoneNumberValue valueForKey:@"_stringValue"] mutableCopy];
  NSRange range;
  while ((range = [contactString rangeOfCharacterFromSet:set]).location!=NSNotFound) {
    [contactString deleteCharactersInRange:range];
  }