我有以下网址: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,其中包含参数名称作为键和值作为值。