私はHTMLレンダラーを作っています。私はStreamTokenizerに読み込まれているhtmlファイルを持っています。現時点ではそれが正しいトークンをプリントアウトし、私のhtmlファイルで私のvarbilesがStreamTokenizer、htmlファイルをレンダリングしますか?
<html><p>$myVarToBeRendered$<p></html>
は私が正しいトークンはそれがquoteCharを使用してHTML本体とVARSを分割すなわち取得ドルなどで囲まれた( '$を指定します「)
FileReader in = new FileReader(file);
BufferedReader reader = new BufferedReader(in);
StreamTokenizer tok;
tok = new StreamTokenizer(reader);
tok.resetSyntax();
tok.wordChars(0, 255);
tok.quoteChar('$');
私はトークンを読ん文字列トークン
"<html><p>" , "myVarToBeRendered" and "<p></html>"
けれども、私は明らかに引用として識別されたトークンmyVarを交換する必要があり得ます。このmyVarは、各変数にレンダリングされる文字列値を保持するHashMapのキーとして使用されます。トークンが見積もりであるかどうかをチェックする方法はありますか? like:
if (tok.next - is a quote or inside my quotes)
Then replace this var name with its related HashMap value
私はインターネットを磨き、例や類似の質問を見つけられませんでした。
または私が使用できる任意の方法で、どのトークンがHashMapで使用する変数であるかを特定できます。申し訳ありませんが、これが意味をなさない場合は、私がしようとしていることを理解して欲しい!!
多くのおかげでサム
私はcontainsKeyを使用して、その方法について忘れてしまいました!、私はregexを使用するつもりでしたが、最初に文字列としてファイルをロードしてから、?私の推論は、ロード中にFileStreamをロードする方が効率的です。 –
気楽に試してみて、きれいに作業しました:) –
すごいです! :) – mazaneicha