Respuestas:
NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];
[array description]
inserta nuevas líneas y paréntesis externos.
NSString * myString = [array componentsJoinedByString:@""];
un sustituto aceptable para esto?
<ClassName: InstanceAddress>
. Esto valueForKey
hace que recupere la propiedad especificada para cada elemento. En este caso, description
es una NSString *
propiedad de NSObject
, cuyo captador puede ser anulado por sus subclases.
Un enfoque sería iterar sobre la matriz, llamando al description
mensaje en cada elemento:
NSMutableString * result = [[NSMutableString alloc] init];
for (NSObject * obj in array)
{
[result appendString:[obj description]];
}
NSLog(@"The concatenated string is %@", result);
Otro enfoque sería hacer algo basado en la clase de cada elemento:
NSMutableString * result = [[NSMutableString alloc] init];
for (NSObject * obj in array)
{
if ([obj isKindOfClass:[NSNumber class]])
{
// append something
}
else
{
[result appendString:[obj description]];
}
}
NSLog(@"The concatenated string is %@", result);
Si desea comas y otra información extraña, simplemente puede hacer:
NSString * result = [array description];
-description
) y concat ellos después de que el uso -componentsJoinedByString:
con @""
como parámetro.
Creo que la respuesta de Sanjay estaba casi allí, pero la usé de esta manera.
NSArray *myArray = [[NSArray alloc] initWithObjects:@"Hello",@"World", nil];
NSString *greeting = [myArray componentsJoinedByString:@" "];
NSLog(@"%@",greeting);
Salida:
2015-01-25 08:47:14.830 StringTest[11639:394302] Hello World
Como Sanjay había insinuado: utilicé los componentes del método JooByString de NSArray que se unen y te devuelven NSString
Por cierto, NSString tiene componentes de método inverso Separated ByString que hace la división y le devuelve NSArray .
Recientemente encontré un muy buen tutorial sobre las cadenas Objective-C:
http://ios-blog.co.uk/tutorials/objective-c-strings-a-guide-for-beginners/
Y pensé que esto podría ser de interés:
Si desea dividir la cadena en una matriz, use un método llamado componentsSeparatedByString para lograr esto:
NSString *yourString = @"This is a test string";
NSArray *yourWords = [myString componentsSeparatedByString:@" "];
// yourWords is now: [@"This", @"is", @"a", @"test", @"string"]
si necesita dividir en un conjunto de varios caracteres diferentes, use los componentes de NSStringSeparatedByCharactersInSet:
NSString *yourString = @"Foo-bar/iOS-Blog";
NSArray *yourWords = [myString componentsSeparatedByCharactersInSet:
[NSCharacterSet characterSetWithCharactersInString:@"-/"]
];
// yourWords is now: [@"Foo", @"bar", @"iOS", @"Blog"]
Sin embargo, tenga en cuenta que la cadena de separación no puede estar en blanco. Si necesita separar una cadena en sus caracteres individuales, simplemente recorra la longitud de la cadena y convierta cada carácter en una nueva cadena:
NSMutableArray *characters = [[NSMutableArray alloc] initWithCapacity:[myString length]];
for (int i=0; i < [myString length]; i++) {
NSString *ichar = [NSString stringWithFormat:@"%c", [myString characterAtIndex:i]];
[characters addObject:ichar];
}
NSString * str = [componentsJoinedByString:@""];
y tienes dic o matriz múltiple y luego usas abajo
NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];
NSArray *array = [NSArray arrayWithObjects:@"One",@"Two",@"Three", nil];
NSString *stringFromArray = [array componentsJoinedByString:@" "];
La primera línea inicializa una matriz con objetos. La segunda línea une todos los elementos de esa matriz agregando la cadena dentro del "" y devuelve una cadena.
Objetivo C Solución
NSArray * array = @[@"1", @"2", @"3"];
NSString * stringFromArray = [[array valueForKey:@"description"] componentsJoinedByString:@"-"]; // "1-2-3"
Aquellos que buscan una solución en Swift
Si la matriz contiene cadenas, puede usar el método de unión de la cadena:
var array = ["1", "2", "3"]
let stringFromArray = "-".join(array) // "1-2-3"
En Swift 2:
var array = ["1", "2", "3"]
let stringFromArray = array.joinWithSeparator("-") // "1-2-3"
En Swift 3 y 4
var array = ["1", "2", "3"]
let stringFromArray = array.joined(separator: "-") // "1-2-3"