Iphone 从NSMutableArray中删除标点符号
如何从NSMutableArray中删除“,”等标点?假设数组的元素是包含逗号分隔的十六进制数的字符串,下面将生成另一个NSMutableArray,并删除除字母数字字符以外的任何字符Iphone 从NSMutableArray中删除标点符号,iphone,objective-c,ios4,Iphone,Objective C,Ios4,如何从NSMutableArray中删除“,”等标点?假设数组的元素是包含逗号分隔的十六进制数的字符串,下面将生成另一个NSMutableArray,并删除除字母数字字符以外的任何字符 NSMutableArray *array = [NSMutableArray arrayWithObject:@"2f,40d,67f"]; for (int i = 0; i < [array count]; i++) { NSString *element = [array objectAtI
NSMutableArray *array = [NSMutableArray arrayWithObject:@"2f,40d,67f"];
for (int i = 0; i < [array count]; i++) {
NSString *element = [array objectAtIndex:i];
NSMutableString *result = [NSMutableString stringWithCapacity:element.length];
NSScanner *scanner = [NSScanner scannerWithString:element];
NSCharacterSet *allowed = [NSCharacterSet alphanumericCharacterSet];
while ([scanner isAtEnd] == NO) {
NSString *buffer;
if ([scanner scanCharactersFromSet:allowed intoString:&buffer]) {
[result appendString:buffer];
} else {
[scanner setScanLocation:([scanner scanLocation] + 1)];
}
}
[array replaceObjectAtIndex:i withObject:result];
}
NSLog(@"array %@", array);
NSMUTABLEARRY*array=[NSMUTABLEARRY arrayWithObject:@“2f,40d,67f”];
对于(int i=0;i<[数组计数];i++){
NSString*元素=[array objectAtIndex:i];
NSMutableString*result=[NSMutableString stringWithCapacity:element.length];
NSScanner*scanner=[NSScanner scannerWithString:element];
NSCharacterSet*允许=[NSCharacterSet alphanumericCharacterSet];
而([scanner isattend]==NO){
NSString*缓冲区;
如果([scanner scanCharactersFromSet:allowed intoString:&buffer]){
[结果追加字符串:缓冲区];
}否则{
[扫描仪设置扫描位置:([扫描仪扫描位置]+1)];
}
}
[array replaceObjectAtIndex:i with object:result];
}
NSLog(@“数组%@”,数组);
这将打印
2f40d67f
,但要完成如此简单的工作,似乎需要做很多工作P假设数组的元素是包含逗号分隔的十六进制数的字符串,下面将生成另一个NSMutableArray,并删除除字母数字字符以外的任何字符
NSMutableArray *array = [NSMutableArray arrayWithObject:@"2f,40d,67f"];
for (int i = 0; i < [array count]; i++) {
NSString *element = [array objectAtIndex:i];
NSMutableString *result = [NSMutableString stringWithCapacity:element.length];
NSScanner *scanner = [NSScanner scannerWithString:element];
NSCharacterSet *allowed = [NSCharacterSet alphanumericCharacterSet];
while ([scanner isAtEnd] == NO) {
NSString *buffer;
if ([scanner scanCharactersFromSet:allowed intoString:&buffer]) {
[result appendString:buffer];
} else {
[scanner setScanLocation:([scanner scanLocation] + 1)];
}
}
[array replaceObjectAtIndex:i withObject:result];
}
NSLog(@"array %@", array);
NSMUTABLEARRY*array=[NSMUTABLEARRY arrayWithObject:@“2f,40d,67f”];
对于(int i=0;i<[数组计数];i++){
NSString*元素=[array objectAtIndex:i];
NSMutableString*result=[NSMutableString stringWithCapacity:element.length];
NSScanner*scanner=[NSScanner scannerWithString:element];
NSCharacterSet*允许=[NSCharacterSet alphanumericCharacterSet];
而([scanner isattend]==NO){
NSString*缓冲区;
如果([scanner scanCharactersFromSet:allowed intoString:&buffer]){
[结果追加字符串:缓冲区];
}否则{
[扫描仪设置扫描位置:([扫描仪扫描位置]+1)];
}
}
[array replaceObjectAtIndex:i with object:result];
}
NSLog(@“数组%@”,数组);
这将打印
2f40d67f
,但要完成如此简单的工作,似乎需要做很多工作P数组或数组元素中没有逗号。当您使用
NSLog()
记录数组时,它使用NeXTSTEP格式,即括号用于分隔数组,逗号用于分隔元素
所以如果
输出
( 006d, 0081, 006d, 007f )
这意味着数组在第一个位置包含@“006d”,在第二个位置包含@“0081”,在第三个位置包含@“006d”,在第四个位置包含@“007f”
逗号(和括号)只是输出数组表示的一部分;它们本身不是数组/数组元素的一部分
您可以使用以下代码段来输出数组,而不是使用NSLog()
:
NSLog(@"beginning of array");
for (id element in myarray) NSLog(@"%@", element);
NSLog(@"end of array");
这将输出如下内容:
beginning of array
006d
0081
006d
007f
end of array
基于注释编辑:看起来您想要加入数组的元素。试试这个:
NSString *allElements = [myarray componentsJoinedByString:@""];
-[NSArray componentsJoinedByString:][/code>方法名是连接数组中的所有元素,并用字符串分隔它们。如果使用@“
作为分隔字符串,元素将一个接一个地连接起来
如果要输出该字符串:
NSLog(@"%@", allElements);
数组或数组元素中没有逗号。当您使用NSLog()
记录数组时,它使用NeXTSTEP格式,即括号用于分隔数组,逗号用于分隔元素
所以如果
输出
( 006d, 0081, 006d, 007f )
这意味着数组在第一个位置包含@“006d”,在第二个位置包含@“0081”,在第三个位置包含@“006d”,在第四个位置包含@“007f”
逗号(和括号)只是输出数组表示的一部分;它们本身不是数组/数组元素的一部分
您可以使用以下代码段来输出数组,而不是使用NSLog()
:
NSLog(@"beginning of array");
for (id element in myarray) NSLog(@"%@", element);
NSLog(@"end of array");
这将输出如下内容:
beginning of array
006d
0081
006d
007f
end of array
基于注释编辑:看起来您想要加入数组的元素。试试这个:
NSString *allElements = [myarray componentsJoinedByString:@""];
-[NSArray componentsJoinedByString:][/code>方法名是连接数组中的所有元素,并用字符串分隔它们。如果使用@“
作为分隔字符串,元素将一个接一个地连接起来
如果要输出该字符串:
NSLog(@"%@", allElements);
你的数组包含什么?您是否需要从数组中的所有字符串中删除“,”if is是数组的一个元素,还是删除all“?粘贴一些代码,告诉我们您想要做什么,并且更加具体。我们猜不到你的问题!我有一个NSMUtableArray,它有一组数字。它们用逗号分隔(006d,0081,006d,007f,0072,007a,007f,0073,008e,006f,00a1,006e,00b4,006e,00c2,006e,00ca,这是我的输出想要删除逗号只是为了确保:数组中的每个元素都是一个字符串,包含几个由逗号分隔的值?我正在使用nslog打印数组。T数组获取了一些点我的代码是[myarray addObject:[NSString stringWithFormat:@“%04x”,(NSInteger)lastPoint.x];[myarray addObject:[NSString stringWithFormat:@“%04x”,(NSInteger)lastPoint.y];NSLog(@“%@),myarray;数组包含什么?是否需要删除“,”如果是数组的元素,还是删除所有“,”从数组中的所有字符串中?粘贴一些代码,告诉我们您想要做什么,并且更具体。我们无法猜测您的问题!我有一个NSMUtableArray,它有一组数字。它们用逗号分隔(006d,0081,006d,007f,0072,007a,007f,0073,008e,006f,00a1,006e,00b4,006e,00c2,006e,00ca,这是我想要删除逗号的输出