Я думаю, что это сработало бы.
Я хотел бы добавить в качестве ответа, как я использую класс java.net.URI для получения информации из этого URI.
class Demo {
public static void main( String ... args ) throws Exception {
System.out.println( inspect( new URI("smtp://user:port@host:25")));
}
// invoke all the getXyz methods on object and construct
// a string with the result.
private static String inspect( Object o ) throws Exception {
StringBuilder builder = new StringBuilder();
for( Method m : o.getClass().getMethods() ) {
String name = m.getName();
if( name.startsWith("get")) {
builder.append( name )
.append(" = " )
.append( m.invoke( o ) )
.append( "\n" );
}
}
return builder.toString();
}
}
Выход
getAuthority = user:port@host:25
getFragment = null
getPath =
getQuery = null
getScheme = smtp
getHost = host
getPort = 25
getUserInfo = user:port
getRawAuthority = user:port@host:25
getRawFragment = null
getRawPath =
getRawQuery = null
getRawSchemeSpecificPart = //user:port@host:25
getRawUserInfo = user:port
getSchemeSpecificPart = //user:port@host:25
getClass = class java.net.URI