从分隔的字符串创建字符串数组。

时间:2015-09-11 20:17:49

标签: java regex

我有一串网址,例如"domain.com/url1, domain.com/url2 etc"。有时它们是逗号,制表符或管道分隔符。我想做的是将它们拆分成一个字符串数组并自动处理任何潜在的用例。有人知道处理这个问题的好方法吗?

我从这样的事情开始,但是它没有正常运行,也没有处理所有用例。

Collection<String> newUrls = Arrays.asList(photoHolder.getPhotoURLs().replaceAll("\\|", ",").replaceAll("\\s+", "").split(","));

3 个答案:

答案 0 :(得分:3)

我认为只有使用split方法并提供与您的任何分隔符相匹配的正则表达式,才能实现这一点。

Collection<String> newUrls = Arrays.asList(photoHolder.getPhotoURLs().split("\\t|\\||,"));

答案 1 :(得分:0)

您可以使用一些独立于分隔符的“智能”正则表达式,但使用域名(.com,.co.uk,IP地址...)来分隔URL。

答案 2 :(得分:0)

我认为您已经制作了一些分割方法来涵盖所有场景,最后将它们放在一个列表中。关于潜在用例的另一个案例使用try catch并在catch句柄中处理异常,因为我们无法处理每个场景。认为这会有所帮助。

Uri uri = Uri.parse("domain.com/url1/what ever_the_url");
String protocol = uri.getScheme();
String server = uri.getAuthority();
String path = uri.getPath();
Set<String> args = uri.getQueryParameterNames();
String limit = uri.getQueryParameter("limit");

也试一试。