如何獲取NSString的字元長度以及如何獲取指定字元長度字元的字串
阿新 • • 發佈:2018-12-25
//首先先新建一個NSString的Category類
//獲取NSString對應的字元長度
- (int)chineseLength { int asciiCount = 0; int nonAsciiCount = 0; for (NSUInteger i = 0; i < self.length; i++) { unichar c = [self characterAtIndex:i]; if (isascii(c)) { asciiCount++; } else { nonAsciiCount++; } } int count = (asciiCount + 1) / 2 + nonAsciiCount; return count; } //獲取指定字元長度字元對應的字串 - (NSString *)chineseSubStringWithMaxCount:(NSUInteger)maxCount { NSUInteger maxCount1 = 2 * maxCount; NSUInteger count = 0; NSUInteger index = 0; for (NSUInteger i = 0; i < self.length; i++) { unichar c = [self characterAtIndex:i]; if (isascii(c)) { count++; } else { count += 2; } if (count == maxCount1) { index = i + 1; break; } else if (count > maxCount1) { index = i; break; } } if (index == 0) { index = self.length; } NSString *subString = [self substringToIndex:index]; return subString; }