nsstring - numeros - quitar espacios en blanco al final c#
Recortar espacios desde el final de una NSString (14)
Aqui tienes...
- (NSString *)removeEndSpaceFrom:(NSString *)strtoremove{
NSUInteger location = 0;
unichar charBuffer[[strtoremove length]];
[strtoremove getCharacters:charBuffer];
int i = 0;
for(i = [strtoremove length]; i >0; i--) {
NSCharacterSet* charSet = [NSCharacterSet whitespaceCharacterSet];
if(![charSet characterIsMember:charBuffer[i - 1]]) {
break;
}
}
return [strtoremove substringWithRange:NSMakeRange(location, i - location)];
}
Así que ahora solo llámalo. Suponiendo que tiene una cadena que tiene espacios en el frente y espacios en el extremo y que solo desea eliminar los espacios en el extremo, puede llamarla así:
NSString *oneTwoThree = @" TestString ";
NSString *resultString;
resultString = [self removeEndSpaceFrom:oneTwoThree];
resultString
no tendrá espacios al final.
Necesito eliminar espacios del final de una cadena. ¿Cómo puedo hacer eso? Ejemplo: si la cadena es "Hello "
, debe convertirse en "Hello"
Esto eliminará solo los caracteres finales de su elección.
func trimRight(theString: String, charSet: NSCharacterSet) -> String {
var newString = theString
while String(newString.characters.last).rangeOfCharacterFromSet(charSet) != nil {
newString = String(newString.characters.dropLast())
}
return newString
}
La solución se describe aquí: ¿Cómo eliminar los espacios en blanco del extremo derecho de NSString?
Agregue las siguientes categorías a NSString:
- (NSString *)stringByTrimmingTrailingCharactersInSet:(NSCharacterSet *)characterSet {
NSRange rangeOfLastWantedCharacter = [self rangeOfCharacterFromSet:[characterSet invertedSet]
options:NSBackwardsSearch];
if (rangeOfLastWantedCharacter.location == NSNotFound) {
return @"";
}
return [self substringToIndex:rangeOfLastWantedCharacter.location+1]; // non-inclusive
}
- (NSString *)stringByTrimmingTrailingWhitespaceAndNewlineCharacters {
return [self stringByTrimmingTrailingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
}
Y lo usas como tal:
[yourNSString stringByTrimmingTrailingWhitespaceAndNewlineCharacters]
Otra solución implica crear una cadena mutable:
//make mutable string
NSMutableString *stringToTrim = [@" i needz trim " mutableCopy];
//pass it by reference to CFStringTrimSpace
CFStringTrimWhiteSpace((__bridge CFMutableStringRef) stringToTrim);
//stringToTrim is now "i needz trim"
Para eliminar los espacios en blanco solo desde el principio y el final de una cadena en Swift:
Swift 3
string.trimmingCharacters(in: .whitespacesAndNewlines)
Versiones anteriores de Swift
string.stringByTrimmingCharactersInSet(.whitespaceAndNewlineCharacterSet()))
Para recortar todos los caracteres de espacio en blanco (supongo que en realidad es tu intención), la siguiente es una forma bastante clara y concisa de hacerlo:
NSString *trimmedString = [string stringByReplacingOccurrencesOfString:@"//s+$" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, string.length)];
Una línea, con un toque de expresión regular.
Se me ocurrió esta función, que básicamente se comporta de manera similar a una en la respuesta de Alex:
-(NSString*)trimLastSpace:(NSString*)str{
int i = str.length - 1;
for (; i >= 0 && [str characterAtIndex:i] == '' ''; i--);
return [str substringToIndex:i + 1];
}
whitespaceCharacterSet
además del espacio en sí incluye también el carácter de tabulación, que en mi caso no pudo aparecer. Así que supongo que una simple comparación podría ser suficiente.
Una solución simple para solo recortar un extremo en lugar de ambos extremos en object-c:
@implementation NSString (category)
/// trims the characters at the end
- (NSString *)stringByTrimmingSuffixCharactersInSet:(NSCharacterSet *)characterSet {
NSUInteger i = self.length;
while (i > 0 && [characterSet characterIsMember:[self characterAtIndex:i - 1]]) {
i--;
}
return [self substringToIndex:i];
}
@end
Y una utilidad simétrica para recortar el comienzo solamente:
@implementation NSString (category)
/// trims the characters at the beginning
- (NSString *)stringByTrimmingPrefixCharactersInSet:(NSCharacterSet *)characterSet {
NSUInteger i = 0;
while (i < self.length && [characterSet characterIsMember:[self characterAtIndex:i]]) {
i++;
}
return [self substringFromIndex:i];
}
@end
Utilice -stringByTrimmingCharactersInSet:
NSString *string = @" this text has spaces before and after ";
NSString *trimmedString = [string stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
(Esto recortará los caracteres de espacio en blanco en ambos extremos).
Swift 3
let string = " this text has spaces before and after "
let trimmedString = string.trimmingCharacters(in: .whitespacesAndNewlines)
Versión rápida
Solo recorta espacios al final de la Cadena:
private func removingSpacesAtTheEndOfAString(var str: String) -> String {
var i: Int = countElements(str) - 1, j: Int = i
while(i >= 0 && str[advance(str.startIndex, i)] == " ") {
--i
}
return str.substringWithRange(Range<String.Index>(start: str.startIndex, end: advance(str.endIndex, -(j - i))))
}
Recorta espacios a ambos lados de la Cuerda:
var str: String = " Yolo "
var trimmedStr: String = str.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
let string = "Probar cadena cortada"
Para eliminar el espacio en blanco y el uso de la nueva línea debajo del código:
let str_trimmed = yourString.trimmingCharacters (en: .whitespacesAndNewlines)
Para eliminar solo los espacios de la cadena, utilice el siguiente código:
let str_trimmed = yourString.trimmingCharacters (en: .whitespaces)
En Swift
Para recortar el espacio y la nueva línea desde ambos lados de la cadena:
var url: String = "/n http://example.com/xyz.mp4 "
var trimmedUrl: String = url.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
NSString *trimmedString = [string stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
//for remove whitespace and new line character
NSString *trimmedString = [string stringByTrimmingCharactersInSet:
[NSCharacterSet punctuationCharacterSet]];
//for remove characters in punctuation category
Hay muchos otros conjuntos de caracteres. Compruébelo usted mismo según su requisito.
NSString* NSStringWithoutSpace(NSString* string)
{
return [string stringByReplacingOccurrencesOfString:@" " withString:@""];
}