当数字是随机的时,捕获子串中的不同值 - Selenium Java

时间:2015-11-02 21:29:06

标签: java selenium-webdriver substring

我正在使用selenium和Java进行自动化。 我在我的一个测试脚本中使用substring,我需要捕获电子邮件收件箱的值。现在这个值可以是1位,2位或3位数。 浏览器上的文字如下所示 - 27收件箱

因此,仅捕获我使用子串(0,2)的数字,它正确捕获值27.问题是当值变为3位时,例如 - 110收件箱。它只会捕获11而不是0.如果值为 - 5 Inbox则会出错。  那么如何使子字符串与所有数字一起工作

例如: 5收件箱 45收件箱 126收件箱

它应该捕获数字而不管数字是否为。

1 个答案:

答案 0 :(得分:3)

您的问题并不十分清楚。

从格式为<digits> Inbox的字符串中获取前导数字的最简单方法就是从结尾处删除6个字符:

String digits = s.substring(0, s.length() - 6);

或者,如果你对6的重要性不那么神秘:

String digits = s.substring(0, s.length() - " Inbox".length())

或者,您可以使用正则表达式来获取匹配组:

String digits = Pattern.compile("(\\d+)").find(s).group();

或者,您可以通过字符串查看连续的数字运行:

int start = 0;
while (start < s.length() && !Character.isDigit(s.charAt(start))) {
  ++start;
}
int end = start;
while (end < s.length() && Character.isDigit(s.charAt(end))) {
  ++end;
}
String digits = s.substring(start, end);