これは実際にはそれほど難しいことではないでしょう。TL、BR、T、BL (左上、右下、上、左下) などのプロパティを持つ、文字を表すオブジェクトのコレクションを格納します。たとえば、次のようになります。
a = RunKey.get("A");
public class RunKey{
public static Key get(Character char){
switch(char){
case A,a: return new A();
break;
// one for every letter
}
}
}
private class A extends RunKey implements IRunKey{
public IRunKey BR(){
return new Z();
}
public IRunKey TR(){
return new W();
}
public IRunKey T(){
return new Q();
}
public Direction getDirection(Character char){
tempRunKey = Runkey.get(char);
if (tempRunKey.T.toString == "char"){
return T;
}
}
}
「Direction」インターフェイスの作成に夢中になり始めたので、最初よりも少し複雑になりましたが、非常に多くの複雑さと比較的単純なオブジェクトしかないため、軽量に保つと、おそらくかなり高速のままになります.
このようなものには動的言語が最適かもしれないと思います...
はい、他の回答が指摘しているように、正規表現は機能しません。