我有一根看起来像这样的绳子:
"51403074 0001048713 1302130446 TOMTOM101订单51403074-3-278065518: ontvangen“
此字符串从包含类似字符串的数组中筛选。这个字符串包含一些相关的数据和一些无关的数据。字符串中唯一相关的部分是:1302130446。这个数字代表日期和时间(yy/mm/dd/hh/mm)。因为这个部分是一个日期和时间,每次都不一样。
如何过滤此字符串,使之只包含相关部分的字符串。
很抱歉还在学习IOS开发。
发布于 2013-02-14 21:08:14
如果日期字符串始终是第三个单词,则可以将NSString拆分为一个字数组,如
NSString *myString = @"This is a test";
NSArray *myWords = [myString componentsSeparatedByString:@" "];然后访问数组中的第三个项,以获得所需的字符串。
编辑(由于注释):为了确保您从word数组中获得正确的字符串,您需要一个字符串的唯一标识符。它可能是'TOMTOM101‘总是跟随日期字符串或其他东西.
**编辑2(由于需要示例代码)
NSUInteger counter = 0;
NSUInteger dateStringIndex = 0;
for(NSString *str in myWords) {
counter ++;
if([str isEqualToString:@"TOMTOM101"]) {
dateStringIndex = counter - 1;
//We now know which word is the date number, so we can stop looping.
break;
}
}(未编译代码)
发布于 2013-02-14 21:14:09
似乎相关字符串的长度为10个字符。
如果这个相关字符串的位置固定在原来的字符串中(就在TOMTOM之后),
然后你可以这样做:-
遍历原始字符串的长度,并寻找一个= 'TOMTOM‘的块
在迭代时为计数添加一个计数器值,将其更新1,每当您遇到一个“空格”.也就是当您遇到第一个“空格”时,添加一个计数器值,假设count = 1,然后当您遇到第二个空格时,更新count =2。诸若此类,
当您找到TOMTOM时,您的计数器将有一个值,例如= 4,因此您知道日期字符串位于count设置为=3和count设置为4之后。
count =3 do:从原始字符串中提取‘相关字符串’。当您遇到下一个“空格”时,更新count = 4,从而停止从原始字符串中提取。
发布于 2013-02-14 22:08:55
你所要做的就是用一个字母分隔原来的字符串。
NSString *whatever = @"51403074 0001048713 1302130446 TOMTOM101 Order 51403074-3-278065518: ontvangen"
NSString *mydatestring = [self NthString:whatever :@" " :2];
- (NSString *)NthString:(NSString *)source:(NSString *)part:(NSInteger)i {
if (i >= 0) {
NSArray* components = [source componentsSeparatedByString:part];
return [components objectAtIndex:i];
}
else {
return @"";
}
}https://stackoverflow.com/questions/14883919
复制相似问题