我在自己的非apache http服务器上工作,但我终于来到现场,我需要从字符串中获取变量
为此,我创建了一个名为GetArgument的方法(String GetCmd,String arg)
GetCmd = GET命令(例如GET /blockip?ip=192.168.1.99)
arg =您需要了解的参数(例如' ip'并且必须返回上面的ip)
一个GET命令中的额外参数由&
分割GetArgument方法的当前代码是:
private static String GetArgument(String GetCmd, String arg) {
String args[] = GetCmd.split("?")[1].split("&");
for(int i = 0; i < args.length; i++){
if (args[i].startsWith(arg + "=")){
// Argument found
}
}
return null;
}
但我该怎么做?
答案 0 :(得分:0)
没关系,我找到了答案:
private static String GetArgument(String GetCmd, String arg) {
String args[] = GetCmd.split("\\?")[1].split("&");
for(int i = 0; i < args.length; i++){
if (args[i].startsWith(arg + "=")){
String returnstring = args[i].substring(arg.length() + 1, args[i].length());
return returnstring;
}
}
return null;
}
答案 1 :(得分:0)
你不必操纵那么多。您的要求可以通过以下代码来实现
public static void main(String[] args) {
System.out.println("333 "+GetArgument("/blockip?ip=192.168.1.99&abc=xyz", "ip"));
}
public static String GetArgument(String GetCmd, String arg) {
String tmp = GetCmd.substring(GetCmd.indexOf('?')+1);
if(tmp.contains(arg)){
return tmp.substring(tmp.indexOf(arg) + arg.length() + 1,(tmp.substring(tmp.indexOf(arg)+arg.length()+1).indexOf('&')>0)?tmp.lastIndexOf('&'):tmp.length());
}
return null;
}