Огурцы-огурцы Regex для чисел плавающие - PullRequest
0 голосов
/ 28 мая 2018

У меня есть файл объектов как #

And Pick random value between '100.3' and '200.9'

Когда я запускаю функцию, я получаю как

Чтобы использовать случайную функцию, мне нужно удвоить значение, не знаю, как значение (float / double)делится на int

@And("^Pick random value between '(\\d+)\\.(\\d+)' and '(\\d+)\\.(\\d+)'$")
public void pickrandomvaluebetween(int arg1, int arg2, int arg3, int arg4) throws Throwable {

Может ли кто-нибудь помочь?не уверен, что отсутствует какая-либо зависимость

Ответы [ 3 ]

0 голосов
/ 28 мая 2018
@And("^Pick random value between '([\d\.]+)' and '([\d\.]+)'$") 
public void pickrandomvaluebetween(String minValueStr, String maxValueStr) {
   float minValue = Float.parseFloat(minValueStr);
   float maxValue = Float.parseFloat(maxValueStr);
}
0 голосов
/ 28 мая 2018

Начиная с Cucumber-jvm v3.x, вы можете использовать выражения Cucumber, поэтому вам больше не придется использовать Regex.Источник: https://cucumber.io/blog/2018/05/19/announcing-cucumber-jvm-3-0-0

0 голосов
/ 28 мая 2018

Я думаю, что вы хотите здесь, чтобы зафиксировать нижнюю и верхнюю точки диапазона как отдельные числа.Попробуйте использовать этот шаблон:

@And("^Pick random value between '(\d+(?:\.\d+)?)' and '(\d+(?:\.\d+)?)'$")
public void pickrandomvaluebetween(String min, String max) throws Throwable {
    // ... parse min/max as floats or doubles
    // do something
}

Демо

Шаблон (\d+(?:\.\d+)?) говорит, что соответствует одной или нескольким цифрам, после чего необязательныйдесятичное место и одна или несколько цифр.?:, который вы видите во внутренних скобках, должен указывать Java , а не , чтобы получить десятичную точку как отдельный шаблон.Скорее, как показано в демонстрации выше, захватывается только все число (возможно, с плавающей запятой).

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