我试图将GET请求的值存储到另一个变量中。 当我尝试使用数字时,例如:
http://87.103.35.230/test.html?a=20&b=10
我使用下一个方法存储值:
int valor1 = Integer.parseInt(streamAux.substring(pos1+2, pos2-1).trim());
int valor2 =Integer.parseInt(streamAux.substring(pos2+2, pos3-1).trim());
但是,我想用角色做到这一点。
http://87.103.35.230/test.html?a=RS232&b=10
我该怎么做?我尝试建立一个字符串并给它相同的输出:
String testx = "";
testx = streamAux.substring(pos11+22, pos22-11);
然而,它不起作用。
streamAux对象是一个包含GET请求的字符串。 pos11和pos22来自:
int pos11=streamAux.indexOf("=R");
int pos22=streamAux.indexOf(",");
int pos33=streamAux.indexOf("HTTP/1.1");
有人能帮我一个忙吗?
答案 0 :(得分:0)
在这里。试试吧。
i=streamAux.indexOf('a=')+1;
j=streamAux.indexOf('&',i);
string a=streamAux.subString(i,j);
i=streamAux.indexOf('b=',j)+1;
int b=Integer.parseInt(streamAux.subString(i))
a收到字符串保持' RS'在里面。 b是整数。希望这是你想要的。
答案 1 :(得分:0)
您可以将正则表达式与replaceAll()
一起使用。
public static void main(String[] args) throws Exception {
String s = "http://87.103.35.230/test.html?a=20&b=10";
System.out.println(s.replaceAll(".*\\?a=(.*?)&.*", "$1"));
s = "http://87.103.35.230/test.html?a=RS232&b=10";
System.out.println(s.replaceAll(".*\\?a=(.*?)&.*", "$1"));
}
O / P:
20
RS232