1. 程式人生 > >如何獲取NSString的字元長度以及如何獲取指定字元長度字元的字串

如何獲取NSString的字元長度以及如何獲取指定字元長度字元的字串

//首先先新建一個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;
}