当数字是随机的时捕获子字符串中的不同值 - 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);
我正在使用 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);