NSString *myString = @"A B C D E F G";
ฉันต้องการลบช่องว่างดังนั้นสตริงใหม่จึงเป็น "ABCDEFG"
NSString *myString = @"A B C D E F G";
ฉันต้องการลบช่องว่างดังนั้นสตริงใหม่จึงเป็น "ABCDEFG"
คำตอบ:
คุณสามารถใช้:
NSString *stringWithoutSpaces = [myString
stringByReplacingOccurrencesOfString:@" " withString:@""];
หากคุณต้องการรองรับพื้นที่มากกว่าหนึ่งครั้งหรือรองรับช่องว่างใด ๆ คุณสามารถทำได้:
NSString* noSpaces =
[[myString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
componentsJoinedByString:@""];
A B C D E F
จะกลายเป็น
นำมาจากNSString
stringByReplacingOccurrencesOfString:withString:
ส่งคืนสตริงใหม่ที่เกิดขึ้นทั้งหมดของสตริงเป้าหมายในตัวรับจะถูกแทนที่ด้วยสตริงอื่นที่กำหนด
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement
พารามิเตอร์
เป้าหมาย
The string to replace.
ทดแทน
The string with which to replace target.
ส่งคืนค่า
สตริงใหม่ที่เกิดขึ้นทั้งหมดของเป้าหมายในเครื่องรับจะถูกแทนที่ด้วยการแทนที่
ทั้งหมดข้างต้นจะทำงานได้ดี แต่วิธีที่เหมาะสมคือ:
yourString = [yourString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
มันจะทำงานเหมือนวิธี TRIM มันจะลบช่องว่างด้านหน้าและด้านหลังทั้งหมด
ขอบคุณ
[NSCharacterSet whitespaceCharacterSet]
[NSCharacterSet whitespaceAndNewlineCharacterSet]
หากสตริงไม่แน่นอนคุณสามารถแปลงได้โดยใช้แบบฟอร์มนี้:
[string replaceOccurrencesOfString:@" "
withString:@""
options:0
range:NSMakeRange(0, string.length)];
นอกจากนี้ยังมีประโยชน์หากคุณต้องการให้ผลลัพธ์เป็นอินสแตนซ์ที่ไม่แน่นอนของสตริงอินพุต:
NSMutableString * string = [concreteString mutableCopy];
[string replaceOccurrencesOfString:@" "
withString:@""
options:0
range:NSMakeRange(0, string.length)];
คุณสามารถลองสิ่งนี้
- (NSString *)stripRemoveSpaceFrom:(NSString *)str {
while ([str rangeOfString:@" "].location != NSNotFound) {
str = [str stringByReplacingOccurrencesOfString:@" " withString:@""];
}
return str;
}
หวังว่านี่จะช่วยคุณได้