2011-06-08 19 views
15

que tenga que eliminar el espacio en blanco sólo desde la izquierda de NSString quiero decirEliminar espacio en blanco de la izquierda de NSString

si tengo " This is a good day" tendré "This is a good day"

sólo los espacios dejados solamente

cualquier sugerencia por favor

+0

@Jhaliya, ver lo que necesita @AMH a continuación :-) – EmptyStack

+0

@Jhaliya, stringByTrimmingCharactersInSet *: * este es el método que realmente busca. En su pregunta, preguntó * "Eliminar espacio en blanco de la izquierda de NSString" * porque la cadena en su ejemplo tiene espacio en blanco en el extremo izquierdo solamente. – EmptyStack

+0

@Simon: tienes razón, te tengo Simon, pensé, él tiene algún requisito específico para eliminar de la izquierda. podrías agregar tu respuesta – Jhaliya

Respuesta

69

Sólo tiene que utilizar

NSString* result = [yourString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 

Se eliminará todo el espacio extra de izquierda como la derecha, pero no desde mediados

y para eliminar tanto el espacio en blanco y \n uso

NSString* result = [yourString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
+0

cómo eliminar \ n utilizando el mismo método – AMH

+0

para eliminar el nuevo carácter de línea lo que hago, whitespaceAndNewlineCharacterSet no funciona, solo elimina el espacio en blanco –

-1
NSString *str = @" This is a good day";  
NSArray *arrString = [str componentsSeparatedByString:@"T"]; 
NSString *strSpace = [arrString objectAtIndex:0]; // White space 
NSString *strString = [arrString objectAtIndex:1]; //This is a good day 

continuación Puede anexar T en el cadena como

NSString *strT = @"T"; 
strString = [strT stringByAppendingString:strString]; 
4

Usa a continuación para eliminar el blanco y el nuevo chatacter de línea de tu NSString.

NSString* result = [yourString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
+0

@ Simon: ¿Lees mi comentario en la pregunta? – Jhaliya

+0

+1, por forzarme a eliminar mi respuesta. Es una broma. +1 para la respuesta correcta :-) – EmptyStack

2
Nsstring *str=" This is a good day"; 

    while ([str rangeOfString:@" "].location != NSNotFound) { 
    str = [str stringByReplacingOccurrencesOfString:@" " withString:@" "]; 
} 

nslog(@"string after removing space %@",) 
+0

Esta es una solución terrible que no funciona correctamente para muchos otros casos posibles, como @ "Este es un buen día", y deja un espacio destacado en la cadena. ¿Cómo se modificó esto? –

0

he aquí una solución que se me ocurrió cuando se enfrenta al mismo problema:

- (NSString*)trimBlankCharactersFromBeginningOfString:(NSString*)originalString 
{ 
    //we are only trimming the characters on the left side of the string 
    NSInteger count = [originalString length]; 
    NSString *trimmedNewText = originalString; 
    for (int i = 0; i < count; i++) { 
     if([[originalString substringWithRange:NSMakeRange(i, 1)] rangeOfCharacterFromSet:[NSCharacterSet whitespaceCharacterSet]].location == NSNotFound) 
     { 
      trimmedNewText = [originalString substringFromIndex:i]; 
      break; 
     } 
     else 
     { 
      if(i+1 < count) 
      { 
       trimmedNewText = [originalString substringFromIndex:i+1]; 
      } 
      //since we are exiting the loop as soon as a non blank space character is found 
      //then this is just really checking to see if we are on the last character of an 
      //all whitespace string. can't say i+1 here because that would give an index out 
      //of bound exception 
      else 
      { 
       trimmedNewText = @""; 
      } 
     } 
    } 
    return trimmedNewText; 
} 
0

Para recortar sólo a la izquierda de una solución es añadir un personaje ficticio a la derecha de la cadena de , recorte la cuerda y luego quítela.

NSString* tempString = [NSString [email protected]"%@T", yourString]; 
NSString* result = [yourString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 
return [result substringToIndex:[result length]-1]; 
Cuestiones relacionadas