簡體   English   中英

如何獲取URL中的數字?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM