从 URL 中提取查询值

  • 本文关键字:查询 提取 URL java url
  • 更新时间 :
  • 英文 :


我有以下网址:https://play.google.com/store/apps/details?id=eu.bandainamcoent.verylittlenightmares&hl=en";

我想提取此值:eu.bandainamcoent.verylittlenightmares

URI uri = new URI(URL);
uri.getQuery();

我会得到这个:id=eu.bandainamcoent.verylittlenightmares&hl=en

如何切割id=&hl=en&hl=en可能不存在,可以不同,比如&hl=de等。

URI 中没有函数可以做到这一点,但这里有一个解决它的技巧:

Map<String, String> params = Arrays.stream(uri.getQuery().split("&"))
.map(s -> s.split("="))
.collect(Collectors.toMap(k -> k[0], v -> v.length > 1 ? v[1] : ""));
String id = params.get("id"); // eu.bandainamcoent.verylittlenightmares
String hl = params.get("hl"); // en

我们确定两个参数之间唯一的分隔符是&,并且参数的名称和值由=分隔,为此您用&拆分,并且对于每个结果用=拆分,结果是一个 Map,其中包含参数名称作为键和值作为值。

最新更新