我有以下代码:
NSArray *myArray = [NSArray arrayWithObjects: @"e", @"è", @"é",@"i","ò",nil];
NSString *string = @"simpleè";
NSMutablestring *newString;
for(i=0>;i< [string length]; i++){
if([stringa characterAtIndex:i] is in Array){
[newString appendFormat:@"%c", [string characterAtIndex:i]];
}
}
如何查找字符串中的单个字符串是否保留在数组中?
结果示例:
newString = @“ieè”;
答案 0 :(得分:1)
我想你想反复申请rangeOfCharacterFromSet:options:range:。你必须以某种方式从数组中的字符创建NSCharacterSet。
虽然用characterAtIndex
循环遍历字符串可能同样简单,并将每个char(在内部循环中)与数组中的字符进行比较(可以将其提取到{{1}中}数组或放入单个unichar
以便于访问)。
答案 1 :(得分:0)
嗯......如果你想查看值是什么,你可以使用NSLog
NSLog"%f", myFloat;
所以你可以用它来检查你的阵列......我认为你要求的是哪个,但你问题中的语法不是很好。请提供更多细节和更好的语法。
答案 2 :(得分:0)
您应检查字符串的长度,然后将字符串字符与数组匹配,如果找到,则将该字符附加到新字符串中。
NSString *mstr = @"asdf";
NSString *b = [ mstr characterAtIndex:0];
希望它有所帮助.......
答案 3 :(得分:0)
您需要创建一个包含字符串中字符的NSCharacterSet,然后向数组中的每个字符串询问其rangeOfCharacterFromSet:
。如果找到一个实际找到范围的字符,那么字符串中的字符就在数组中。如果没有,那么它们都不是。
这可能看起来有点迂回,但是Unicode使字符串看起来只是一系列“字符”而不是不可靠,而且你会想让你的图书馆尽可能多地为你做重担。 / p>
答案 4 :(得分:0)
有更好的方法可以做到这一点,但这是我认为你要做的事情:
NSMutableString* result= [NSMutableString stringWithString:@""];
for( int i= 0; i < [string length]; ++i ) {
NSString* c= [NSString stringWithFormat:@"%C", [string characterAtIndex:i]];
if( [myArray containsObject:c] )
[result appendString:c];
}