使用Selenium WebDriver Java从源中查找第N个单词

时间:2018-07-12 10:42:00

标签: java regex search selenium-webdriver

我有以下内容:

String line = "London Paris Tokyo Russia Seoul Beijing";
String notCityName = "Russia";
Pattern r = Pattern.compile(notCityName);
Matcher m = r.matcher(line);

我想知道如何找到“ Russia”的列号,在这种情况下可以直观地将其确认为第4列。

如何确定“俄罗斯”是上面列表中的第4个字?

我要寻找的是答案4(四个),即数字。

找到此数字4的Java / Selenium代码是什么?

谢谢你, 狮子座

2 个答案:

答案 0 :(得分:0)

正如我在评论中所说,请使用.split()然后循环内容,以便您可以找到索引。将索引加1即可得到4而不是3

String line = "London Paris Tokyo Russia Seoul Beijing";
String notCityName = "Russia";

String[] splitLine = line.split(" ");
for(int i = 0; i < splitLine.length; i++){
  if(splitLine[i].equals(notCityName)) {
    System.out.print(++i);
  }
}

输出4.删除++i,由于数组索引从0开始,它将显示3。

答案 1 :(得分:0)

您的实际问题确实与硒无关。这是在字符串中查找单词的纯Java问题。在这种情况下,这是任何其他问题的重复。

但是,如果这是硒,我很好奇line的来源。实际上只有两种选择:这是您生成的字符串,或者是网站中的字符串。

  1. 如果是生成的字符串,为什么不将其实例化为数组或列表?如果它在您的代码中确实为String line = "London Paris Tokyo Russia Seoul Beijing";,那么将其设为List<String> lineArrayList<String> line?如果您是从外部文件中读取文件,则不能将其读取为CSV文件吗?
  2. 如果它是从屏幕上读取的东西,它真的只是一个长的.getText()吗?您将该行称为“列标题” ,这会让我相信它是网格或表格的一部分。在这种情况下,为什么不能一次读取每一列并构建一个数组或列表而不是一个平面字符串?