2013-02-14 241 views
0

我有一个字符串,它看起来像这样:这个字符串从数组过滤过滤字符串日期

“ontvangen 51403074 0001048713 1302130446 TOMTOM101订购 51403074-3-278065518”包含类似的字符串。该字符串包含一些相关数据和一些不相关的数据。相关字符串的唯一部分是:1302130446。该数字表示日期和时间(年/月/日/时/毫米)。因为这部分日期和时间每次都不一样。

如何过滤此字符串,以便我将有一个只包含相关部分的字符串。

对不起还在学习IOS dev。

+0

你必须定义SOME算法(在一个级别上你可以用单词解释),它可以让你找出哪一组字符是它的日期。透视电脑还没有被发明出来。 – 2013-02-14 21:19:59

回答

4

如果日期字符串永远是第三个单词,你可以在NSString的分成单词数组作为

NSString *myString = @"This is a test"; 
NSArray *myWords = [myString componentsSeparatedByString:@" "]; 

,然后访问数组中的第三个项目获得你想要的字符串。

编辑(由于评论):为了确保从字数组中获得正确的字符串,您需要一个唯一的字符串标识符。这可能是因为“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; 
    } 
} 

(未编译的代码)

+0

不幸的是,并不总是我也有字符串,看起来像这样:'“00204732 4/40 1302130817 TOMTOM221 Order 51402432-2-477100605:gestart'所以现在它将是第4个字 – 2013-02-14 21:12:44

+2

所以什么定义日期和时间字符串将位于? – Philo 2013-02-14 21:15:11

+0

是的,这听起来像是一个选项,TOMTOM总是作为日期后的下一个单词 – 2013-02-14 21:18:49

0

似乎相关的字符串是10个字符的长度。

如果此相关的字符串的位置被固定在原来的字符串(自带TOMTOM后右),

那么你可以做这样的事情: - 通过原字符串的长度

迭代,并寻找一个块='TOMTOM'

迭代时为计数添加一个计数器值,每当遇到一个'空间'时更新它1 ....当遇到第一个'空间'时,添加一个计数器值,比如count = 1,那么当你遇到第二个空间时,更新count = 2 ..等等,

,当你发现TOMTOM,你的柜台都会有一个值,即= 4,所以你知道计数设置= 3后日期字符串位于之前计数设为= 4

而数= 3做:从原始字符串中提取'相关字符串'。当你遇到下一个'空间'时,更新计数= 4,因此停止从原始字符串中提取。

0

您所要做的就是将原始字符串与单字母空格分开。

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 @""; 
} 
} 
+0

NthString代表什么? – 2013-02-15 09:18:40

+0

不能我只是与nsrange子字符串? – 2013-02-15 09:33:27

+0

恐怕您需要阅读一本书才能学习基本知识。 – 2013-02-15 22:07:56