如何将URL字符值复制到字符串中

时间:2016-10-18 14:52:31

标签: java string http get

我试图将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");

有人能帮我一个忙吗?

2 个答案:

答案 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