我需要为我正在编写的Spring过滤器解析一个URI的某个部分的变量。我试图提取一个用户名,它可能是URI的最后一部分,是更复杂的URI的一部分,或者包含用户名之后的查询字符串参数。
示例输入
在每种情况下,我想最终得到一个包含" jay"的字符串。简单地使用indexOf
在这里是否合适,或者这更适合正则表达式?我对Java中的正则表达式的经验有限,所以任何帮助都表示赞赏。谢谢!
答案 0 :(得分:4)
为了做到这一点,我建议您使用URI
类。
URI users = URI.create("/users"); // Can be put as a final static field
URI uri = URI.create(uriString); // Can be skipped if you have a URI as input
String afterUsers = users.relativize(uri).getPath();
if (afterUsers.isEmpty())
System.out.println("No user");
else
System.out.println("User: " + afterUsers.split("/", 2)[0]);