Вставьте @ "\ n" в строку NSString - PullRequest
0 голосов
/ 22 октября 2011

Например, если я начну с этой строки:

NSString * labeltext = @"abcdefghijk";

Я хочу изменить эту строку на @"abc\n def\n ghi \n jk".

Я хочу, чтобы @ "\ n" вставлялся с интервалом 3.

Как мне это сделать?

1 Ответ

3 голосов
/ 22 октября 2011

Используйте NSMutableString, а затем для цикла по исходной NSString.

NSMutableString *buffer = [[NSMutableString alloc] init];
int len = [labelText length];
for (i = 0; i < len; i++) {
    NSRange charAt = NSMakeRange(i,1);
    [buffer appendString: [labelText substringWithRange: charAt]];
    if ((i % 3) == 2) {
        [buffer appendString: @"\n"];
    }
}
labelText = (NSString *)buffer;

Приведенный выше пример - чистый Objective-C.Это также может быть выполнено с помощью C. Преобразуйте строку NSString в строку cstring, а затем выполните цикл по массиву.Например,

const char *str = [labelText UTF8String];
int len = strlen(str) - 1;
int pos = 0;
char buffer[(len * 2) + 1];
for (i = 0; i < len; i++) {
    char ch = str[i];
    buffer[pos] = ch;
    pos++;
    if ((i % 3) == 2) {
        buffer[pos] = '\n';
        pos++;
    }
}
buffer[pos] = '\0';
labelText = [NSString stringWithFormat: @"%s", buffer];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...