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

Capturing different values in substring when digits are random - Selenium Java

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

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

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

无论位数有多少,它都应该捕获数字。

你的问题输入的不是很清楚

从格式为 <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);