cuốn sách gpt4 ai đã làm

NSRange, nhận kết quả sai khi tìm từ trong đoạn văn

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 09:07:51 26 4
mua khóa gpt4 Nike

Tôi đã viết một phương pháp thực hiện điều này bằng cách gửi nó NSString để đánh dấu các từ trong một đoạn văn, nó hoạt động tốt cho đến khi tôi gặp phải tình huống này:

Khi tôi có văn bản này:

Mẹ của chúng đã thử mặc cho chúng những bộ đồ khác...

khi tôi chuyển lời other Khi nào, từ "mother” được đánh dấu khi tôi vượt qua TRONG Điều tương tự khi tôi nhận được "trang phụcTRONGg".

Đây là mã của tôi:

-(void)setTextHighlited(NSString *)txt{
NSMutableAttributionString * string = [[NSMutableAttributionString alloc]initWithString:self.textLabel.text];

for (NSString *word in [self.textLabel.text ComponentsSeparatedByString:@" "]) {

if ([word hasPrefix:txt]) {
Phạm vi NSRange=[self.textLabel.text rangeOfString:word];
[chuỗi addAttribution:NSForegroundColorAttributionName value:[UIColor blueColor] range:range];
}

Tôi đã thử sử dụng phạm viOfString:tùy chọn:Với tất cả các tùy chọn nhưng vẫn cùng một vấn đề.

Xin hãy cho tôi một lời khuyên

Ghi chú: Đây là nguồn mã của tôi

câu trả lời hay nhất

问题是

Phạm vi NSRange=[self.textLabel.text rangeOfString:word];

Tìm từ trong văn bảnĐầu tiên Xuất hiện. Một lựa chọn tốt hơn là liệt kê văn bản theo từng từ:

-(void)setTextHighlited(NSString *)txt{

NSString *text = self.textLabel.text;
NSMutableAttributionString *string = [[NSMutableAttributionString alloc]initWithString:text];

[text enumerateSubstringsInRange:NSMakeRange(0, [độ dài văn bản])
tùy chọn:NSStringEnumerationByWords sử dụngBlock:^(NSString *chuỗi con, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
if ([chuỗi con isEqualToString:txt]) {
[chuỗi addAttribution:NSForegroundColorAttributionName value:[UIColor blueColor] phạm vi:substringRange];
}
}];
self.textLabel.attributedText = chuỗi;
}

Phương pháp này còn có nhiều ưu điểm như có thể tìm được cả những từ được đặt trong dấu ngoặc kép hoặc được bao quanh bởi dấu chấm câu.

Về ios - NSRange, việc tìm một từ trong đoạn văn nhận kết quả sai, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/20260381/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress