1

我需要连接一些字符串,但这是示例代码: 事情是在连接之后 java 确实读取了新字符串作为先前声明的给定 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);
}
4

3 回答 3

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);
}
于 2013-07-01T19:13:22.977 回答
3
engineSearch=("engine"+urlCountDown);

并不意味着

engineSearch = engine1;

也不

engineSearch = engine0;

这就是 java 不将其识别为 URL 的原因。

结果将是

engineSearch = "engine2_yourEncodedQuery_";

engineSearch = "engine1_yourEncodedQuery_";

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

于 2013-07-01T19:10:57.733 回答
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。希望这可以帮助。

于 2013-07-01T19:06:41.070 回答