Java 如何解析IPV4和IPV6的数据库连接字符串

Java 如何解析IPV4和IPV6的数据库连接字符串,java,string,url,stringtokenizer,Java,String,Url,Stringtokenizer,我试着解析url,我试着在java中使用URI类,但是对于不同的字符串集来说,它并不完美。我还必须在IPV6上进行解析。下面给出了输入字符串 jdbc:postgresql:database jdbc:postgresql://host/database jdbc:postgresql://host:port/database jdbc:postgresql://host:port/database?user=userName&password=pass jdbc:postgresql:

我试着解析url,我试着在java中使用URI类,但是对于不同的字符串集来说,它并不完美。我还必须在IPV6上进行解析。下面给出了输入字符串

jdbc:postgresql:database
jdbc:postgresql://host/database
jdbc:postgresql://host:port/database
jdbc:postgresql://host:port/database?user=userName&password=pass
jdbc:postgresql://host:port/database?charSet=LATIN1&compatible=7.2

jdbc:postgresql://[::1]:5740/accounting (IPV6)
我想要主机名、端口和数据库名


指引我

您能简要回答一下您的问题吗?给定的url是ipv4和ipv6数据库连接字符串的输入!!我想获取主机名、端口和数据库名。我使用了URI类,但无法获取正确的结果!!
    String cleanURI = s.substring(5);
    URI uri = URI.create(cleanURI);
    System.out.println(uri.getScheme());
    System.out.println(uri.getHost());
    System.out.println(uri.getPort());
    System.out.println(uri.getPath());