从电子邮件字符串数组中过滤新行

时间:2014-01-10 06:52:10

标签: ios iphone objective-c email nsarray

我正在尝试将电子邮件发送到我从服务器获取的列表,该服务器是一组电子邮件,其输出格式为

(
    "john@gmail.com\n",
    "katebell@gmail.com\n"
     "\nakhil@gmail.com",
     "mary@gmail.com",
     "timcorb\n@gmail.com
)

现在你可以看到一些电子邮件中间有换行符,而且这些电子邮件都没有发送。我正在尝试找到一种有效的方法来过滤掉这些换行符,我目前的方法是遍历所有电子邮件并检查每封电子邮件中的换行符,如果存在换行符,则将其替换为空字符串。有没有更好的方法来做到这一点,还是我应该坚持下去?我当前的方法是否会在任何其他情况下引起任何问题?

4 个答案:

答案 0 :(得分:0)

尝试这样的事情

NSString *fileName = @"\ntest\n";  
fileName = [fileName stringByReplacingOccurrencesOfString:@"\n" withString:@""];

例如

   NSString * str = @"timcorb\n@gmail.com";
   str = [str stringByReplacingOccurrencesOfString:@"\n" withString:@""];
   NSLog(@"%@",str);

它将记录2014-01-10 01:01:00.256 demo[26220] timcorb@gmail.com

答案 1 :(得分:0)

您可以使用以下代码替换字符串中的字符。


    NSString *email = @"\nakhi\nl@gmail.com";
NSString *actualEmail = [email stringByReplacingOccurrencesOfString:@"\n" withString:@""];

答案 2 :(得分:0)

NSMutableArray* emailArray = [[NSMutableArray alloc] init];

for (int _index = 0; _index < [yourArray count]; _index++) {
  [emailArray addobject:[[yourArray objectAtIndex:_index]  stringByReplacingOccurrencesOfString:@"\n" withString:@""]];
}

这将为您提供电子邮件阵列

答案 3 :(得分:0)

您可以尝试使用NSRegularExpression的一种方法,如下所示: -

    NSArray *array=@[@"john@gmail.com\n",@"katebell@gmail.com\n",@"\nakhil@gmail.com",@"mary@gmail.com",@"timcorb\n@gmail.com"];
    NSString *string =[array componentsJoinedByString: @","];
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\n" options:NSRegularExpressionCaseInsensitive error:nil];
    NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@""];
    NSLog(@"%@",modifiedString);

输出: -

john@gmail.com,katebell@gmail.com,akhil@gmail.com,mary@gmail.com,timcorb@gmail.com