0
我想提出一個HTML渲染器。我將html文件讀入StreamTokenizer。目前,它打印出正確的令牌,並在我的HTML文件中指定我varbiles封閉在美元如StreamTokenizer,呈現一個html文件?
<html><p>$myVarToBeRendered$<p></html>
我得到正確的令牌,即它通過使用quoteChar分裂HTML主體和VAR('$ 「)
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中的一個鍵,該鍵持有要呈現給每個變量的字符串值。有沒有辦法檢查令牌是否是報價?如:
if (tok.next - is a quote or inside my quotes)
Then replace this var name with its related HashMap value
我已經搜索了互聯網,找不到任何示例或類似問題來幫助我!
或者,我可以使用,所以我可以找出哪些記號是變量在HashMap中使用任何方法。對不起,如果這沒有意義,希望你明白我想做什麼!
非常感謝薩姆
呀使用的containsKey那是一個好主意,我忘了那個方法!我會使用正則表達式,但它意味着首先加載文件作爲一個字符串,然後檢查?加載的FileStream是會更有效進行修改,同時加載 –
乾杯只是嘗試了一下工作和精美:) –
這真棒當我的理由了! :) – mazaneicha