我正在为 Java 项目开发基于命令的功能,但在向这些命令引入参数时遇到了麻烦。
例如,所有命令的存储方式如下:
"Hey tell [USER] to [ACTION]"
现在,当用户提交命令时,它将如下所示:
"Hey tell Player to come see me"
现在我需要知道如何将用户输入的命令与包含占位符值的存储命令进行比较。我需要能够比较两个字符串并识别它们是相同的命令,然后从中提取数据 [USER] 和 [ACTION] 并将它们作为数组返回
array[0] = "Player"
array[1] = "come see me"
真心希望有人能帮助我,谢谢
您可以使用模式匹配,如下所示:
String command = "Hey tell [USER] to [ACTION]";
String input = "Hey tell Player to come see me";
String[] userInputArray = new String[2];
String patternTemplate = command.replace("[USER]", "(.*)");
patternTemplate = patternTemplate.replace("[ACTION]", "(.*)");
Pattern pattern = Pattern.compile(patternTemplate);
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
userInputArray[0] = matcher.group(1);
userInputArray[1] = matcher.group(2);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)