我正在使用selenium和Java进行自动化。 我在我的一个测试脚本中使用substring,我需要捕获电子邮件收件箱的值。现在这个值可以是1位,2位或3位数。 浏览器上的文字如下所示 - 27收件箱
因此,仅捕获我使用子串(0,2)的数字,它正确捕获值27.问题是当值变为3位时,例如 - 110收件箱。它只会捕获11而不是0.如果值为 - 5 Inbox则会出错。 那么如何使子字符串与所有数字一起工作
例如: 5收件箱 45收件箱 126收件箱
它应该捕获数字而不管数字是否为。
答案 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);