gpt4 book ai didi

java - 解析带双引号的参数

转载 作者:行者123 更新时间:2023-11-30 05:22:01 25 4
gpt4 key购买 nike

我正在 Minecraft 中编写客户端,并且有一个命令管理器,它接受参数以空格分隔的命令,例如 $command arg1 arg2 arg3

// Message will output like "$command arg1 arg2" etc.
public void runCommand(String message) {
String[] args = parseArgs(message);
}

// Accepts string, outputs array of arguments
public String[] parseArgs(String message) {
return message.split(" ");
}

我尝试使用 str.split("") 函数用空格分隔参数。但是,问题是当我的参数用双引号引起来时,例如 $command "This is an argument",该函数返回一个数组,例如 [$command, "This, is,一个,参数”]

如何解析这些参数以使其输出[$command, "This is an argument"]

最佳答案

试试这个。

static final Pattern ARG_PAT = Pattern.compile("\"[^\"]+\"|\\S+");

public static String[] parseArgs(String message) {
return ARG_PAT.matcher(message)
.results()
.map(r -> r.group())
.toArray(String[]::new);
}

关于java - 解析带双引号的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59401592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com