首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

StreamTokenizer 程式碼詞法分析器應用

     編輯:Java 相關知識

StreamTokenizer 將 InputStream 切分為詞法單元:單字、數字、字串、單一字元。預設分隔符可擴充,適用於編譯器掃描器、文字統計等場景。

核心機制

  • nextToken() 取得下一單元,回傳型別代碼 (TT_EOF, TT_EOL, TT_NUMBER, TT_WORD)
  • ttype 欄位標識單元型別
  • sval (字串值)、nval (數值) 儲存對應內容
  • ordinaryChar() 將字元設為普通字元(不作為單字一部分)

完整範例:單字統計與排序輸出

StreamTokenizer st = new StreamTokenizer(fileInputStream);
st.ordinaryChar('.'); st.ordinaryChar('-'); // 設定普通字元

while (st.nextToken() != StreamTokenizer.TT_EOF) {
    String s;
    switch (st.ttype) {
        case StreamTokenizer.TT_WORD: s = st.sval; break;
        case StreamTokenizer.TT_NUMBER: s = Double.toString(st.nval); break;
        default: s = String.valueOf((char)st.ttype);
    }
    // 使用 Hashtable + Counter 統計頻率
}
// 使用 StrSortVector 排序輸出

進階應用

第 17 章將展示更複雜的 StreamTokenizer 應用案例。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved