1

我为 Windows 编写了一个 Java 命令行应用程序,并将该 cmd 的结果存储在一个字符串变量中。

我的问题是:是否可以从存储 cmd 输出的变量中获取子字符串?

如果在 cmd 输出字符串变量中找到子字符串,我想放置一个创建操作的语句。

以下是应用程序类的方法:

public static void main(String[] args) throws IOException, InterruptedException
{
    runWndCommand("ping 192.168.11.3");
}

public static void runWndCommand(String cmd) throws IOException, InterruptedException
{
    Runtime runtime = Runtime.getRuntime();
    Process p = runtime.exec(new String[] { "cmd.exe", "/C", cmd });

    Scanner reader = new Scanner(p.getInputStream());

     while (reader.hasNext())
     {
        String r=reader.nextLine();
        System.out.println(r);
     }
     p.waitFor();
 }
4

2 回答 2

1

A quick example of how to use contains() as in your example:

String r = reader.nextLine();

System.out.println(r);

if (r.contains("abc")) {
    System.out.println("abc found");
} else {
    System.out.println("abc not found");
}

This will print abc found if "abc" is a substring within r.

于 2012-12-16T18:41:36.557 回答
0

考虑 java.util.regex.Pattern 它是一种更灵活的方法来测试字符串是否包含您期望的内容

于 2012-12-16T19:25:13.757 回答