我有标记化字符串,我想从中访问第1,第2,第3个值。
任何人都可以看一下吗?
提前致谢!
这是代码
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());
}
答案 0 :(得分: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]);
答案 1 :(得分: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]。
答案 2 :(得分: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));
}