2010-04-05 36 views
30

Giả sử tôi có chuỗiLàm thế nào để thay thế một ký tự trong NSString mà không cần chèn một khoảng trắng?

NSString* myString = @"Hello,"; 

Làm thế nào tôi có thể loại bỏ các dấu phẩy mà không để lại một không gian? Tôi đã thử:

NSString* newString = [myString stringByReplacingOccurrencesOfString:@"," withString:@""]; 

NSString* newString = [myString stringByTrimmingCharactersInSet:[NSCharacterSet punctuationCharacterSet]]; 

Nhưng cả hai đều để lại không gian.

+8

Không họ không phải, một cái gì đó khác đang xảy ra. –

+2

Bạn xác minh rằng có một không gian như thế nào? Bạn có thể hiển thị mã đó không? Tôi đặt cược vấn đề là có. –

+0

Tôi đang mã hóa chuỗi của mình. Tôi tách biệt xin chào và, như hai thẻ riêng biệt. Khi xây dựng một chuỗi từ các thẻ, có một khoảng trống giữa Hello và, –

Trả lời

101

Tôi chỉ cần chạy sau như một thử nghiệm

NSString * myString = @"Hello,"; 

NSString * newString = [myString stringByReplacingOccurrencesOfString:@"," withString:@""]; 

NSLog(@"%@xx",newString); 

Và tôi nhận 2010-04-05 18:51:18.885 TestString[6823:a0f] Helloxx như đầu ra. Không còn chỗ trống.

0
NSString *newString = [myString substringToIndex:5]; 

Điều đó sẽ đảm bảo rằng chỉ có 5 ký tự trong chuỗi, nhưng hãy cẩn thận rằng điều này cũng sẽ ném một ngoại lệ nếu không có ít nhất 5 ký tự trong chuỗi để bắt đầu với. Bạn xử lý chuỗi này như thế nào? Nó có được hiển thị cho người dùng không? Nó đang được ghi vào một tập tin? Mã mà bạn đã đăng không tái tạo lỗi, vì vậy có lẽ bạn nên đăng mã mà bạn đang gặp sự cố.

0

cách khác u có thể sử dụng .. bởi stringByReplacingCharactersInRange

token = [token stringByReplacingCharactersInRange:NSMakeRange(i, 1) withString:@"*"]; 

"token" là muốn bạn để thay thế các NSString và "i" là bạn muốn thay đổi NSString bởi "*"

Các vấn đề liên quan