Выделение числа из строки
#1
Отправлено 14 октября 2009 - 05:59
Мучает вопрос меня - как можно выделить число из строки?Например, есть строка "Результат равен 78 процентов".Мне нужно получить число 78.
Я пробовал проходить посимвольно по строке и получать тип символа, но, к сожалению тип у всех символов есть OleStr.
Может кто-нибудь знает быстрый(по возможности) способ сделать это?
#2
Отправлено 14 октября 2009 - 06:07
Если нужен конкретный пример - указывайте, какой язык используеет
TestComplete для начинающих (видеозаписи курса)
Software Testing Automation Tips (50 вещей, которые должен знать каждый автоматизатор, книга на английском языке)
Онлайн-учебник "Автоматизация тестирования от «А» до «Ы»"
Сборник рецептов по TestComplete (книга на английском языке)
Онлайн-учебник по TestComplete
Онлайн-учебник по SilkTest
#3
Отправлено 14 октября 2009 - 06:14
В любом языке есть функции/методы типа substr, split и т.п. вот с их помощью и можно.
Если нужен конкретный пример - указывайте, какой язык используеет
Использую C#Script.Насчёт substr знаю,что есть,но как задать элемент,с которого нужно выделять подстроку?
#4
Отправлено 14 октября 2009 - 06:56
выглядит так:
/\d*/
#5
Отправлено 14 октября 2009 - 07:45
var str = "Результат равен 78 процентов"; var n = str["substr"](16, 2); // "78" n = parseInt(n); // 78Если точая позиция числа в строке неизвестна, то можно использовать регулярные выражения:
var str = "Результат равен 78 процентов"; var re = /\d+/; // рег. выражение для неотрицательного целого числа var n = str["match"](re)[0]; // "78" n = parseInt(n); // 78
#6
Отправлено 14 октября 2009 - 07:56
регулярные вырожения???
выглядит так:
/\d*/
Помогли регулярные выражения(всё же пришлось их вспоминать ). Использовал такое /\d+\,*\d+/
Данное выражение ищет и целые числа в строке и числа с плавающей запятой.
Среди методов класса aqString не нашёл подходящего для поиска подстроки в строке.
Если юзать метод aqString.SubStr,то нужно знать с какого индекса начинается число,и каким заканчивается.Вот в этом как раз у меня была проблема.
Я делал что то вроде:
var str = "Text200Text";for(var i = 0;i < aqString["GetLength"](str);i++){ if(aqObject["GetVarType"](aqString["GetChar"](i)) == 3) //3 - это номер типа varInteger. res += aqString["GetChar"](i);}
Но проблема в том,что метод aqObject["GetVarType"] возвращал 8(тип varOleStr).
#7
Отправлено 14 октября 2009 - 10:18
Естественно varOleStr, ведь отдельные символы ("a", "1", "+" и т.п.) тоже имеют тип "строка". Тогда уж надо было ASCII-коды проверять или пробовать конвертировать символы в числа.Но проблема в том,что метод aqObject["GetVarType"] возвращал 8(тип varOleStr).
#8
Отправлено 23 декабря 2010 - 12:51
Подскажите, пожалуйста, как это (как можно выделить число из строки? Например, есть строка "Результат равен 78 процентов".Мне нужно получить число 78) сделать на JAVA?В любом языке есть функции/методы типа substr, split и т.п. вот с их помощью и можно.
Если нужен конкретный пример - указывайте, какой язык используеет
#9
Отправлено 23 декабря 2010 - 14:26
Ну а в целом опять же - для таких целей и служат регулярные выражения. Используйте их.
#10
Отправлено 23 декабря 2010 - 16:01
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных