我怎樣才能得到「H4sIAAA」?如何從Android中的html元素獲取值?
String out='<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="H4sIAAA" autocomplete="off" />';
我怎樣才能得到「H4sIAAA」?如何從Android中的html元素獲取值?
String out='<input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="H4sIAAA" autocomplete="off" />';
final String VALUE = "value=\"";
int start = out.indexOf(VALUE) + VALUE.length();
int end = out.indexOf("\"", start);
System.out.println(out.substring(start, end));
做這樣的東西的最佳方式是使用正則表達式。
一個簡單的例子精確匹配問題的方法:
String out= "<input type=\"hidden\" name=\"javax.faces.ViewState\" id=\"javax.faces.ViewState\" value=\"H4sIAAA\" autocomplete=\"off\" />";
Pattern pattern = Pattern.compile(".*(value=\"(\\w*)\").*", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(out);
if (matcher.matches()) {
System.out.println(matcher.group(2));
}
這是用一個accourance僅工作了一個線路輸入端「值=」。
它是做什麼的?
它準備其整個字符串,與「value」屬性,並用該屬性「值」的值的第二組一個組相匹配的正則表達式匹配
它創建使用匹配模式和您指定的字符串「走出去」
如果匹配匹配它打印出團含量2,這是屬性值
使用正則表達式的好處是,您可以讓表達式忽略所有無用的內容,而不管它是什麼,並專注於您想要的提取。 此示例僅對具有一個值屬性的一行輸入有用。當你想分析空洞的html頁面時,你必須將它擴展到你的需求。
正則表達式DOC:https://docs.oracle.com/javase/7/docs/api/java/util/regex/package-summary.html 好的地方來測試正則表達式:http://regexr.com/
玩得開心!