2014-02-23 28 views
0

我創建在Java遊戲中獲得一個角色,並希望用戶輸入一個字符串方向移動,形式:如何從一個字符串

MOVE <DIRECTION> 

如果方向是N,E, S或W.我希望能夠獲得「<」和「>」之間的個人角色,這樣做最好的方法是什麼,因爲目前我無法想象一個體面的方法,因爲這個字符串可能具有不同的大小,例如它可能是:

"MOVE<S> 

由於MOVE和<之間沒有空格,

非常感謝您的幫助:)

回答

5
String s = "MOVE<S>"; 
char c = s.charAt(s.indexOf("<") + 1); 

使用indexOf找到「<」的索引,然後如果使用的charAt +1後得到的字符。但是,真的,你應該查找字符串api。知道這一點非常有用。

0

這個怎麼樣?

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