我創建在Java遊戲中獲得一個角色,並希望用戶輸入一個字符串方向移動,形式:如何從一個字符串
MOVE <DIRECTION>
如果方向是N,E, S或W.我希望能夠獲得「<」和「>」之間的個人角色,這樣做最好的方法是什麼,因爲目前我無法想象一個體面的方法,因爲這個字符串可能具有不同的大小,例如它可能是:
"MOVE<S>
由於MOVE和<之間沒有空格,
非常感謝您的幫助:)
我創建在Java遊戲中獲得一個角色,並希望用戶輸入一個字符串方向移動,形式:如何從一個字符串
MOVE <DIRECTION>
如果方向是N,E, S或W.我希望能夠獲得「<」和「>」之間的個人角色,這樣做最好的方法是什麼,因爲目前我無法想象一個體面的方法,因爲這個字符串可能具有不同的大小,例如它可能是:
"MOVE<S>
由於MOVE和<之間沒有空格,
非常感謝您的幫助:)
這個怎麼樣?
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
<P>{@code java GetDirectionXmpl}</P>
**/
public class GetDirectionXmpl {
//Create a matcher with a dummy-string, so it can be reused (reset).
private static Matcher mMove = Pattern.compile("^MOVE *<([NEWS])>$").matcher("");
public static final void main(String[] igno_red) {
System.out.println("Null if badly formatted");
System.out.println(getDirection("MOVE<S>"));
System.out.println(getDirection("MOVE<BAD>"));
System.out.println(getDirection("MOVE<W>"));
System.out.println(getDirection("MOVE <N>"));
System.out.println(getDirection("MOVE<N>BAD"));
}
public static final String getDirection(String s_input) {
//Reuse the same matcher
mMove.reset(s_input);
if(!mMove.matches()) {
return null;
}
return mMove.group(1);
}
}
輸出:
[C:\java_code\]java GetDirectionXmpl
Null if badly formatted
S
null
W
N
null