Добавить символ или специальный символ в NString? - PullRequest
0 голосов
/ 22 марта 2012

У меня есть NSString * string = @ "606", и я хочу добавить двоеточие ":" после двух цифр.
Вывод должен выглядеть следующим образом: 6:06
Это возможно?

Помощь будет присвоена.
Большое спасибо.

Ответы [ 3 ]

3 голосов
/ 22 марта 2012

Вы можете добавить столбец между часами и минутами следующим образом:

NSString *string = @"606";
NSString *result = [string stringByReplacingCharactersInRange:NSMakeRange(string.length-2, 0) withString:@":"];
NSLog(@"%@", result);

Это даст следующие результаты

@"606"  =>  @"6:06"
@"1200" =>  @"12:00"
@"1406" =>  @"14:30"

Примечание. Это будет работать только в том случае, если строка содержит 3 или 4 символа, но это соответствует вашему вопросу.

2 голосов
/ 22 марта 2012

Поскольку у вас нет двух отдельных объектов для часов и минут, используйте:

NSString *newTimeString, *hour, *minute;
NSUInteger length = [timeString length];
if (length == 3)
{
    hour = [timeString substringToIndex:1];
    minute = [timeString substringFromIndex:2];
}
else
{
    hour = [timeString substringToIndex:2];
    minute = [timeString substringFromIndex:3];
}
newTimeString = [NSString stringWithFormat:@"%@:%@", hour, minute];

Я использовал длинную версию, чтобы проиллюстрировать концепцию.В основном, используйте длину исходной строки (timeString), чтобы извлечь компоненты времени и объединить их с двоеточием.

0 голосов
/ 22 марта 2012

Будет ли это 2 цифры, несмотря ни на что? В противном случае вы можете создать свою собственную строку из параметров.

NSString *string = [NSString stringWithFormat:@"%@:%@", hours, minutes];

UPDATE

Если вам просто нужно добавить двоеточие после 1 символа, вы можете сделать это следующим образом. Хотя я бы посоветовал найти более безопасный метод, поскольку он может быть неточным, если у вас есть двузначный час.

NSString *hour = [NSString substringToIndex:1]; // double check the index
NSString *min = [NSString substringFromIndex:1]; // double check the index
NSString *time = [NSString stringWithFormat:@"%@:%@", hour, min];

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...