How do I check for specific parts in a userInput command?(如何检查userInput命令中的特定部分?)
问题描述
我正在试着做一个游戏..当有人在控制台中键入命令时,我希望命令中有[args]。
例如:
~修复[用户名][运行状况]
以下是示例代码(如果您有答案,请参考此代码):
import java.util.Scanner;
class StackOverflowExample {
public static void main(String[] args) {
System.out.println("Healing Command: ~heal [username] [health]");
int player1HP = 0;
Scanner userInteraction = new Scanner(System.in);
String userInput = userInteraction.nextLine();
if (userInput.equals("~heal " /**+ username + num**/) /**How do I make it so that a number(the amount to heal) and a username(player username) can be inputted after?**/){
player1HP += 0; /**I need the number that the user inputs to be added to player1HP**/
}
System.out.println("player1/**I want this to be the username value**/ is at: " + player1HP/**I want this to be the hp value + player1HP**/ + " hp.");//I want this command to print out "ProGamer is at: 3 hp."
}
}
输出:
如何获取";username";和";Health";的值?
推荐答案
可以使用regular expression确保输入有效。
然后可以调用方法split将命令分成单独的单词。
import java.util.Scanner;
public class StackOverflowExample {
public static void main(String[] args) {
System.out.println("Healing Command: ~heal [username] [health]");
int player1HP = 0;
Scanner userInteraction = new Scanner(System.in);
String userInput = userInteraction.nextLine();
if (userInput.matches("^~heal [^ ]+ \d+$")) {
String[] parts = userInput.split(" ");
int health = Integer.parseInt(parts[2]);
player1HP += health;
String player = parts[1];
System.out.printf("%s is at: %d hp.%n", player, player1HP);
}
}
}
正则表达式检查输入的命令是否以~heal开头,后跟一个空格,后跟一个或多个不是空格的字符,然后是另一个空格,后跟一个或多个数字。
然后在空格上拆分输入的命令,这将返回一个三元数组,其中第一个数组元素是命令(即~heal),第二个元素是玩家姓名,最后一个元素是生命值。
这篇关于如何检查userInput命令中的特定部分?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何检查userInput命令中的特定部分?
基础教程推荐
- Java 实例变量在两个语句中声明和初始化 2022-01-01
- 在 Java 中创建日期的正确方法是什么? 2022-01-01
- 如何在 Spring @Value 注解中正确指定默认值? 2022-01-01
- 多个组件的复杂布局 2022-01-01
- 大摇大摆的枚举 2022-01-01
- 如何在 JFrame 中覆盖 windowsClosing 事件 2022-01-01
- 不推荐使用 Api 注释的描述 2022-01-01
- 验证是否调用了所有 getter 方法 2022-01-01
- Java Swing计时器未清除 2022-01-01
- 从 python 访问 JVM 2022-01-01
