从NSMutableArray删除标点符号

问题描述

| 如何从NSMutableArray中删除标点符号,例如\“,\”?     

解决方法

您的数组或数组元素中没有逗号。当您使用“ 0”记录数组时,它使用NeXTSTEP格式,该格式指出括号用于定界数组,逗号用于定界元素。 因此,如果
NSLog(@\"%@\",myarray);
输出
( 006d,0081,006d,007f )
这意味着该数组在第一个位置包含@ \“ 006d \”,在第二个位置包含@ \“ 0081 \”,在第三位置包含\“ 006d \”,在第四位置包含@ \“ 007f \”。 逗号(和括号)只是用于输出的数组表示的一部分;它们本身不是数组/数组元素的一部分。 除了使用ѭ0之外,您还可以使用以下代码片段输出数组:
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:@\"\"];
method7ѭ,如方法名称所示,将数组中的所有元素连接在一起,并用字符串将它们分隔开。如果使用“ 8”作为分隔字符串,则元素将一个接一个地连接在一起。 如果要输出该字符串:
NSLog(@\"%@\",allElements);
    ,假设数组的元素是包含逗号分隔的十六进制数字的字符串,则以下代码将生成另一个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);
此打印
2f40d67f
,但看起来要做很多简单的事情需要很多工作。 :P