У меня есть строка времени, которая выглядит так: 5:34 pm
. Я хочу захватить 5
, поместить его в переменную и захватить 34
и поместить его в переменную. Это возможно?Захват чисел после толстой кишки?
Заранее благодарен!
У меня есть строка времени, которая выглядит так: 5:34 pm
. Я хочу захватить 5
, поместить его в переменную и захватить 34
и поместить его в переменную. Это возможно?Захват чисел после толстой кишки?
Заранее благодарен!
NSArray *splitString = [timeString componentsSeparatedByString:@":"];
if ([splitString count] > 1 {
NSString *hours = [splitString objectAtIndex:0];
NSString *minutes = [splitString objectAtIndex:1];
}
else {
//improperly formatted string
}
Красивая! Только то, что мне было нужно. Спасибо, ответит, как только он станет доступен. –
Нет проблем! Я помню, как искал этот метод назад. :-) – Jumhyn
Остерегайтесь описанной выше техники NSString. Если в вашей строке отсутствует двоеточие, вы получите сообщение об ошибке objectAtIndex: 1. (Я бы прокомментировал это, но мне не хватало репутации.)
Это должно быть немного более надежным.
int hours, minutes;
if (2 == sscanf([timeString UTF8String], "%d:%d", &hours, &minutes))
{
// congratulations, you did it
}
else
{
// the string was malformed
}
Не уверен, что мне следует использовать функцию стиля C или метод стиля Objective-C? –
Довольно уверен, что он всегда будет иметь двоеточие. –
, даже в другом методе легко проверить наличие неверных euqations: просто проверьте, что splitString.count> 1. Кроме того, если вам нужно больше контроля, я рекомендую вам посмотреть на «NSScanner». – mohsenr
У вас есть точные ответы на ваш вопрос, но если вы пытаетесь разобрать время, см. [NSDateFormatter dateFromString:]. – Ken
@Ken Я попытался использовать его, но для моих нужд просто синтаксический анализ строки был всем, что мне нужно. Спасибо хоть! –