私は小さなJavaツールを作成し、最初にURLを解析する必要があります。私の解決策についてあなたが何を考えているのか、そしてもっと良い方法があるかどうか知りたいのですが。ここではいくつかの例を示します。
aaa:// username:password @ server:port / dir /
aaa:// server:port / dir /
aaa:// server:port
ユーザーが注意しなければ、あらゆる種類の文字列が可能です。したがって、私の関数がそのような文字列を取得する可能性があります
aaa:// username:pass
それも。しかし、文字列は常にwitch aaa://で始まります。
これが私のコードです:
url = url.replaceFirst( "aaa://"、 "");
String params[] = url.split("@");
if(params[0].compareTo("") != 0) {
String paramsfst[] = params[0].split(":");
if(params.length == 1) {
if(paramsfst.length >= 1) {
this.server = parsePort(paramsfst[0]);
if(paramsfst.length == 2) {
this.port = parsePort(paramsfst[1]);
}
}
} else {
String paramssec[] = params[1].split(":");
if(paramssec.length >= 1) {
this.server = parsePort(paramssec[0]);
if(paramssec.length == 2) {
this.port = parsePort(paramssec[1]);
}
}
if(paramsfst.length == 2) {
this.username = paramsfst[0];
this.password = paramsfst[1];
}
}
if(url.contains("/")) {
this.path = url.substring(url.indexOf("/"), url.length() -1);
}
private String parsePort(String port) {
int i = port.indexOf("/");
if(i == -1) {
return port;
}
return port.substring(0, i);
}
どう思いますか?