如何从String中获取一个字符

时间:2014-02-23 15:30:56

标签: java arrays string char element

我在java中创建一个游戏,并希望用户输入一个String来表示移动方向:

MOVE <DIRECTION>

方向是N,E,S或W.我希望能够在“&lt;”之间获得个性。和“&gt;”,这将是最好的方法,因为目前我不能想到一个体面的方法,因为这个字符串可能有不同的大小,例如它可能是:

"MOVE<S>

由于MOVE和&lt;。

之间没有空格

非常感谢您的帮助:)

3 个答案:

答案 0 :(得分:5)

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

使用indexOf查找“&lt;”的索引,然后在使用charAt + 1后获取字符。但实际上,你应该查找字符串api。知道它非常有用。

答案 1 :(得分:0)

答案 2 :(得分: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