QString вынуть int |
Здравствуйте, гость ( Вход | Регистрация )
QString вынуть int |
crazymonkey |
27.12.2011, 20:14
Сообщение
#1
|
Студент Группа: Участник Сообщений: 26 Регистрация: 23.6.2011 Пользователь №: 2764 Спасибо сказали: 2 раз(а) Репутация: 0 |
Доброго времени суток.
Подскажите как из строки вида "A_14_R4" вынуть 14 и 4 как int В качестве временного решения использую QString tm = //некая строка; QChar* data1 = tm.data(); ++data; //некторое количесвто раз повторить int tm_wt = data1->toAscii() - 48; |
|
|
BlueIceScream |
27.12.2011, 20:23
Сообщение
#2
|
Студент Группа: Участник Сообщений: 56 Регистрация: 21.11.2011 Из: Республика Дагестан Пользователь №: 3016 Спасибо сказали: 18 раз(а) Репутация: 3 |
Используйте фунции:
QString mid ( int position, int n = -1 ) const QString right ( int n ) const int toInt ( bool * ok = 0, int base = 10 ) const |
|
|
zloiia |
28.12.2011, 1:13
Сообщение
#3
|
Студент Группа: Участник Сообщений: 25 Регистрация: 5.5.2011 Пользователь №: 2655 Спасибо сказали: 5 раз(а) Репутация: 0 |
А можно регулярным выражением пройтись. Лично я, если это не критичный кусок кода или чтобы не заморачиваться с позициями, предпочитаю такой вариант. crazymonkey, если у вас еще и длины чисел гуляют, я бы все-таки посмотрел в сторону регулярных выражений. Я не знаю точных подробностей как там у Вас строка может выглядеть, поэтому навскидку накидал пример
Удобство в том что при правильно составленном шаблоне сразу и валидацию строки можно произвести быстро |
|
|
crazymonkey |
28.12.2011, 19:53
Сообщение
#4
|
Студент Группа: Участник Сообщений: 26 Регистрация: 23.6.2011 Пользователь №: 2764 Спасибо сказали: 2 раз(а) Репутация: 0 |
А можно регулярным выражением пройтись. Лично я, если это не критичный кусок кода или чтобы не заморачиваться с позициями, предпочитаю такой вариант. crazymonkey, если у вас еще и длины чисел гуляют, я бы все-таки посмотрел в сторону регулярных выражений. Я не знаю точных подробностей как там у Вас строка может выглядеть, поэтому навскидку накидал пример
Удобство в том что при правильно составленном шаблоне сразу и валидацию строки можно произвести быстро Люблю регулярные выражения, но не счел нужным применения их в этой ситуации. Была бы строка подлиннее, тогда я бы точно пользовался RegExp в полной мере. А для строки такого формата я сделал так 1) Разбил строку по '_' функцией split 2) Воспользовался функциями которые предложил BlueIceScream |
|
|
zloiia |
29.12.2011, 4:09
Сообщение
#5
|
Студент Группа: Участник Сообщений: 25 Регистрация: 5.5.2011 Пользователь №: 2655 Спасибо сказали: 5 раз(а) Репутация: 0 |
А можно регулярным выражением пройтись. Лично я, если это не критичный кусок кода или чтобы не заморачиваться с позициями, предпочитаю такой вариант. crazymonkey, если у вас еще и длины чисел гуляют, я бы все-таки посмотрел в сторону регулярных выражений. Я не знаю точных подробностей как там у Вас строка может выглядеть, поэтому навскидку накидал пример
Удобство в том что при правильно составленном шаблоне сразу и валидацию строки можно произвести быстро Люблю регулярные выражения, но не счел нужным применения их в этой ситуации. Была бы строка подлиннее, тогда я бы точно пользовался RegExp в полной мере. А для строки такого формата я сделал так 1) Разбил строку по '_' функцией split 2) Воспользовался функциями которые предложил BlueIceScream Просто лично я как-то ленюсь частенько удостоверяться в истинности перевода из строки в число |
|
|
Текстовая версия | Сейчас: 27.11.2024, 7:20 |