làm thế nào để lấy ba ký tự đầu tiên của một NSString?


104

Làm cách nào để trả về ba ký tự đầu tiên của một NSString?

Câu trả lời:


263
 mystr=[mystr substringToIndex:3];

Hãy chắc chắn rằng chuỗi của bạn có ít nhất 3 ch .. oe nó sẽ làm hỏng ứng dụng.

Dưới đây là một số liên kết khác để kiểm tra hoạt động NSsting ...

Liên kết1

Link2

Liên kết Apple


21
lưu ý: "Phạm vi hoặc chỉ số nằm ngoài giới hạn" lỗi có thể nếu bạn không kiểm tra độ dài để đảm bảo nó có dài 3 hoặc nhiều ký tự
Ryan Bavetta

Tôi rất mới và tôi đã tìm kiếm câu hỏi này để cố gắng trả lời cho riêng mình, nhưng câu trả lời này sẽ không loại bỏ 3 ký tự đầu tiên sao? Tôi sử dụng cùng một cú pháp đó để XÓA số ký tự bạn đặt. Tôi có lẽ sai, nhưng tôi nghĩ ít nhất tôi nên hỏi.

@RyanBavetta Điều gì sẽ xảy ra nếu chuỗi bạn đang thực hiện việc này với ví dụ là chuỗi ngày tháng mà mã của bạn đã tạo trước đó và vì vậy bạn biết CHÍNH XÁC nó có bao nhiêu ký tự. Thì chắc chắn bạn không cần bận tâm đến câu lệnh if để kiểm tra xem nó còn bao lâu nữa rồi đúng không ??
Supertecnoboff

1
@GameLoading Tôi đã thêm một số mã vào câu trả lời của bạn để nó không bị lỗi cho người mới bắt đầu. Mong bạn không phiền :)
iYoung

Chỉ cần sử dụng mystr = [mystr substringToIndex: MIN (mystr.length, 3)] để tránh sự cố :-)
LabourEtArs

62

Trước tiên, bạn phải đảm bảo rằng chuỗi chứa ít nhất 3 ký tự:

NSString *fullString = /* obtain from somewhere */;
NSString *prefix = nil;

if ([fullString length] >= 3)
    prefix = [fullString substringToIndex:3];
else
    prefix = fullString;

substringToIndex: sẽ ném ra một ngoại lệ nếu chỉ mục bạn cung cấp nằm ngoài phần cuối của chuỗi.


5
Hoặc, bọc trong một khối @ try / @ catch. Tuy nhiên, đây là một câu trả lời tốt hơn câu trả lời kia.
Alan Zeino

2

cách đúng là:

text = [text substringToIndex:NSMaxRange([text rangeOfComposedCharacterSequenceAtIndex:2])];

SubringToIndex của NSString đang lập chỉ mục theo đơn vị mã, biểu tượng cảm xúc lấy hai đơn vị mã.

đảm bảo bạn tự kiểm tra chỉ mục.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.