java中的连接循环

时间:2013-07-01 19:03:36

标签: java loops concatenation httprequest string-concatenation

我需要连接一些字符串,但这是示例代码: 事情是在连接之后java doenst读取新字符串作为先前声明的给定URL ..这可能不难做但我在这里停留了两个小时而且在我的研究如何在一个循环中执行此操作没有答案,任何人可以帮忙吗?提前谢谢!

    public HttpRequest(String query) throws IOException{

    engine0="http://google.com/search?q=";
        engine1="http://www.bing.com/search?q=";

    for(urlCountDown=2;urlCountDown!=-1;urlCountDown--){

    try {

        engineSearch=("engine"+urlCountDown);
        // Fixed search URL; drop openConnection() at the end
        url = new URL(engineSearch+URLEncoder.encode(query));
        System.out.println(url);
}

3 个答案:

答案 0 :(得分:5)

您应该使用数组来执行此操作。

String engine[2];
engine[0] = "http://google.com/search?q=";
engine[1] = "http://www.bing.com/search?q=";

for(int i = 0; i < 2; i++) {
    url = new URL(engineSearch+URLEncoder.encode(query));
    System.out.println(url);
}

答案 1 :(得分:3)

engineSearch=("engine"+urlCountDown);

不代表

engineSearch = engine1;

,也不

engineSearch = engine0;

这就是为什么java不会将其识别为URL。

结果将是

engineSearch = "engine2_yourEncodedQuery_";

engineSearch = "engine1_yourEncodedQuery_";

如果要使用循环获取不同的字符串,则必须使用数组或列表

答案 2 :(得分:2)

您的代码存在一些问题。第一次运行时,它正在寻找engine2,但这不存在。此外,您试图通过连接变量来访问变量,但这不起作用。当您的代码运行时,您将获得engine0+whateverisinthisvariable而不是变量的值。对于您尝试做的事情,您应该使用数组。

试试这个:

String[] engine = new String[2];
engine[0]="http://google.com/search?q=";
engine[1]="http://www.bing.com/search?q=";
for(urlCountDown=0;urlCountDown<2;urlCountDown++){

    try {

        engineSearch=engine[urlCountDown];
        // Fixed search URL; drop openConnection() at the end
        url = new URL(engineSearch+URLEncoder.encode(query));
        System.out.println(url);
}

这将循环遍历两个引擎元素,并为您提供所需的URL。希望这可以帮助。