Java - 如何将字符串拆分为命令的参数

时间:2016-04-16 18:35:38

标签: java

在客户端服务器程序中,我有这一行

    String line = inputStream.readLine();
    if (line.startsWith("/adduser")) {
      //do code
    }

示例命令" / adduser -id 1022 -p SomePass " 我知道如何通过line.startswith开始这个过程,但是我怎样才能使程序读取-id之后的内容并将其放在一个值中并与-p相同。

2 个答案:

答案 0 :(得分:0)

您可以拆分字符串并使用for循环来解析生成的数组中的标记。

String line = inputStream.readLine();
   if (line.startsWith("/adduser")) {
      String[] arguments = line.split(" ");
      int id = 0;
      String password = "";

      for (int i = 0; i < arguments.length - 1; i++)
         if (arguments[i].equals("-id"))
            id = Integer.parseInt(arguments[i+1]);    // Assuming that your id values are integers.
         else if (arguments[i].equals("-p"))
            password = arguments[i+1];

      // Handle values
 }

答案 1 :(得分:0)

这应该做的工作。我会建议对这些 id 传递值进行一些测试,然后再对它们做任何想法。

    String[] line = "/adduser -id 1022 -p SomePass".split(" ");
    String id = line[2];
    String somePass = line[4];