0

我目前有以下方法:

try {
           URL url = new URL("http://auth.h.gp/HAKUNA%20MATATA.txt");
           Scanner s = new Scanner(url.openStream());
        }
        catch(IOException ex) {
           BotScript.log("Something went wrong =/ Error code:");
           ex.printStackTrace();
           stop();
        }

但是,如何检查它是否包含单词?我以前从未使用过扫描仪,我在网上找到了这个片段。

谢谢你。

4

1 回答 1

1

好的,到目前为止看起来不错。

然后,您可以使用 Scanner 的next()方法来获取每个单词。您还可以查询hasNext()是否有另一个令牌可用于避免错误。

boolean foundPumbaa = false;
while (s.hasNext()) {
    if (s.next().equalsIgnoreCase("pumbaa")) {
        foundPumbaa = true;
        System.out.println("We found Pumbaa"); // do something
        break;
    }
}
if (!foundPumbaa) {
    System.out.println("We didn't find Pumbaa");
}

编辑以回应评论:
是的,您可以将文本转换为String. 最好的方法可能是使用BufferedReader.

来自Java 教程,“直接从 URL 读取”

以下小型 Java 程序使用 openStream() 获取 URL http://www.oracle.com/上的输入流。然后它在输入流上打开一个 BufferedReader 并从 BufferedReader 读取,从而从 URL 读取。读取的所有内容都被复制到标准输出流:

import java.net.*;
import java.io.*;

public class URLReader {
    public static void main(String[] args) throws Exception {

        URL oracle = new URL("http://www.oracle.com/");
        BufferedReader in = new BufferedReader(
        new InputStreamReader(oracle.openStream()));

        String inputLine;
        while ((inputLine = in.readLine()) != null)
            System.out.println(inputLine);
        in.close();
    }
}

在一个真正的程序中main throws Exception,你会在一个try-catch块中拥有它并捕获一个IOException和一些不同的URLExceptions. 但这应该让你开始。

于 2013-03-11T23:30:55.490 回答