本文介紹了如何檢查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命令中的特定部分?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,