-2

次の文字列が<=10 & <20あり、この文字列を分割して次の結果が得られるようにしたい('<=' '10' '<' '20')& コードの別の領域でそれを処理するため、 & は無関係です! ありがとう

4

4 に答える 4

1

コンパイラのように文字列をトークン化したくないようです。すでにコンピューター サイエンスのクラスを受講している場合は、字句解析の知識が必要です。つまり、柔軟な方法で文字列をトークン化するにはステート マシンが必要です。この要件を解決する別の方法はありません。

アルゴリズムのほんの一部:

var tokens = new Array();
var inputStr ...;

... a lot of state variables

var currentState = LexicalAnalysisStates.START;

for (var i = 0; i < inputStr.length; i++) { 
  var nextChar = input.charAt(i);
  switch (currentState) {
  case LexicalAnalysisStates.START: ...; // process nextChar considering START state
  case LexicalAnalysisStates.DIGIT: ...; // process nextChar considering DIGIT state
  case LexicalAnalysisStates.EQUAL: ...; // process nextChar considering EQUAL state
  }
}

... here you should have your token collection populated

ヒント:このような最終的なステート マシンのスケッチを描くことから始めます。

編集: Artem のコメントの後に、コードを Javascript 構文に更新しました。

于 2013-08-16T13:13:29.890 に答える