1

我有标记化的字符串,我想从中访问第一个、第二个、第三个值。

任何人都可以调查一下吗?

提前致谢!

这是代码

String cssvalue = webDriver.findElement(By.id(elementId)).getCssValue("color");
String s = cssvalue;
StringTokenizer st = new StringTokenizer(s, ",() ");
while (st.hasMoreTokens()) {

    log.info("TOken: "+st.nextToken());
}
4

3 回答 3

1

这可能会有所帮助:

String cssvalue = webDriver.findElement(By.id(elementId)).getCssValue("color");
String [] s = cssvalue.split("rgb");
StringTokenizer st = new StringTokenizer(s[1], ",() ");
List<Integer> values = new ArrayList<Integer>();
int index=0;
while (st.hasMoreTokens()) {
  values.add(Integer.parseInt(st.nextToken()));
  log.info("TOken: "+values.get(index));
  index++;

}
Integer [] a = values.toArray(new Integer[3]);
于 2013-05-21T05:36:17.463 回答
0

只是为了好玩,因为我认为存储 .hasMoreToken 值是没有意义的:

String cssvalue = webDriver.findElement(By.id(elementId)).getCssValue("color");
String [] s = cssvalue.split("rgb");
StringTokenizer st = new StringTokenizer(s[1], ",() ");
List<Integer> values = new ArrayList<Integer>();
List<Boolean> more = new ArrayList<Boolean>();
Boolean b;
while (b = st.hasMoreTokens()) {
  values.add(Integer.parseInt(st.nextToken()));
  more.add(b); 
  log.info("TOken: "+values.get(values.size()-1));
}
于 2013-05-21T06:06:41.583 回答
0

好的,所以您必须存储前 3 个令牌:

String cssvalue = webDriver.findElement(By.id(elementId)).getCssValue("color");
String s = cssvalue;
StringTokenizer st = new StringTokenizer(s, ",() ");
ArrayList<String> rgb_lst = new ArrayList<String>();
while (st.hasMoreTokens()) {
    rgb_lst.add(st.nextToken());
    if (rgb_lst.size() == 3) break;
}

或类似的东西。

然后可以得到rgb_lst[0]、rgb_lst[1]和rgb_lst[2]。

于 2013-05-21T05:33:56.933 回答