[英]How to pick up the numbers in URL?
這是URL的一部分:
String str = "/item/board_read.nhn?code=008250&nid=22939649&st=&sw=&page=1";
我想了解一下nid的屬性,即22939649
。 我怎樣才能做到這一點? 我嘗試使用Jsoup解析器。
Document doc = Jsoup.parse(str);
String nid = doc.attr(nid);
System.out.println(nid);
但是我什么也看不到。 也許那樣,只是選擇HTML attr,而不是通用字符串。 我應該使用regx嗎?
使用indexOf
什么問題?
String number = str.substring(str.indexOf("nid=") + 4, str.indexOf("&st="));
您可以使用簡單的正則表達式或重新創建查詢解析器。 刪除“?”之前的部分 與indexof。 用&Foreach分割,用=分割以獲取代碼和值。
您能否提供背景信息,讓您找到已經實現您的需求的類。 是否在webapp中? 要么.. ?
您可以使用Apache的URLEncodedUtils
List<NameValuePair> params = URLEncodedUtils.parse(URI.create(str), "UTF-8");
for (NameValuePair param : params) {
if (param.getName().equals("nid")) {
System.out.println(param.getValue());
break;
}
}
可以使其保持簡單
String str = "/item/board_read.nhn?code=008250&nid=22939649&st=&sw=&page=1";
int startIndex = str.indexOf("nid=");
int endIndex = str.indexOf('&', startIndex);
String nid = str.substring(startIndex+4, endIndex);
Jsoup解析器在這里沒有幫助。
您可以使用正則表達式:
//String str = "/item/board_read.nhn?nid=22939649&code=008250&st=&sw=&page=1";
//String str = "/item/board_read.nhn?code=008250&st=&sw=&page=1&nid=22939649";
String str = "/item/board_read.nhn?code=008250&nid=22939649&st=&sw=&page=1";
Pattern p = Pattern.compile("[?&]nid=(\\d+)");
Matcher m = p.matcher(str);
if (m.find()) {
String nid = m.group(1);
System.out.println(nid);
}
else {
System.out.println("nid not found");
}
這可以與URL內任何順序的任何參數一起使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.