将带格式的字符串分隔为数组

时间:2015-08-11 23:03:26

标签: ios objective-c

我正在尝试将格式化字符串的值分隔为数组。我有字符串指定格式,但无法找到一种方法来获取给定格式的格式化字符串的值。

这是格式字符串:

fmt=['%2i %2i %4i %2i %2i %2i %1i %11.7f %11.7f %12.5f %12.5f ' ...
'%5.2f %11.5f %5.2f %6.2f %2i %1i %9.5f %9.5f %3i\n'];

以下是我想分开的格式化字符串示例:

 5 27 2015  2 21 17 0  32.3788833 -64.6799500      6.16800     -0.12000  5.53     0.36000  5.40   6.03  4 4 -99.99999 -99.99999 999

有没有办法做到这一点?如果没有,在objective-c中我可以用一个空格替换连续的空格然后用一个空格分开吗?

2 个答案:

答案 0 :(得分:0)

希望这有帮助,

NSString *yourStr = @"5 27 2015  2 21 17 0  32.3788833 -64.6799500      6.16800     -0.12000  5.53     0.36000  5.40   6.03  4 4 -99.99999 -99.99999 999 ";
NSPredicate *nonEmptyValue = [NSPredicate predicateWithFormat:@"SELF != ''"];
NSArray *parts = [yourStr componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
NSArray *finalArr = [parts filteredArrayUsingPredicate:nonEmptyValue];

答案 1 :(得分:0)

您可以使用NSString' componentsSeparatedByString:将字符串转换为NSArray

示例:

NSString *string = @"5 27 2015 2 21 17 0 32.3788833 -64.6799500 6.16800 -0.12000 5.53 0.36000 5.40 6.03 4 4 -99.99999 -99.99999 999";
NSArray *array = [string componentsSeparatedByString:@" "];

P.S。 确保从前导/尾随空格中清除字符串,并将多个连续空格转换为单个空格字符。