|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.io.StreamTokenizer
public class StreamTokenizer
StreamTokenizer 類別獲取輸入串流並將其解析為“標記”,允許一次讀取一個標記。解析過程由一個表和許多可以設置為各種狀態的標誌控制。該串流的標記產生器可以識別標識符、數字、參考的字元串和各種註釋樣式。
從輸入串流讀取的每個位元組都被視為一個字元,範圍在 '\u0000' 到 '\u00FF' 之間。字元值用於尋找該字元的五個可能屬性:空白、字母、數字、字元串引號 和註釋字元。每個字元都可以有零個或多個這樣的屬性。
另外,一個實例還有四個標誌。這些標誌指示:
典型的應用程序首先建構此類別的一個實例,建立一個語法表,然後重複循環,調用該循環的每個迭代中的 nextToken 方法,直到返回值 TT_EOF。
nextToken(),
TT_EOF| 欄位摘要 | |
|---|---|
double |
nval
如果當前標記是一個數字,則此欄位將包含該數字的值。 |
String |
sval
如果當前標記是一個文字標記,則此欄位包含一個給出該文字標記的字元的字元串。 |
static int |
TT_EOF
指示已讀到串流末尾的常數。 |
static int |
TT_EOL
指示已讀到行末尾的常數。 |
static int |
TT_NUMBER
指示已讀到一個數字標記的常數。 |
static int |
TT_WORD
指示已讀到一個文字標記的常數。 |
int |
ttype
在調用 nextToken 方法之後,此欄位將包含剛讀取的標記的型別。 |
| 建構子摘要 | |
|---|---|
StreamTokenizer(InputStream is)
已過時。 從 JDK 版本 1.1 開始,標記輸入串流的首選方法是將其轉換為一個字元串流,例如: Reader r = new BufferedReader(new InputStreamReader(is)); StreamTokenizer st = new StreamTokenizer(r); |
|
StreamTokenizer(Reader r)
創建解析給定字元串流的標記產生器。 |
|
| 方法摘要 | |
|---|---|
void |
commentChar(int ch)
指定該字元參數啟動一個單行註釋。 |
void |
eolIsSignificant(boolean flag)
確定是否將行末尾視為標記。 |
int |
lineno()
返回當前行號。 |
void |
lowerCaseMode(boolean fl)
確定是否對文字標記自動使用小寫字母。 |
int |
nextToken()
從此標記產生器的輸入串流中解析下一個標記。 |
void |
ordinaryChar(int ch)
指定字元參數在此標記產生器中是“普通”字元。 |
void |
ordinaryChars(int low,
int hi)
指定 low <= c <= high 範圍中的所有字元 c 在此標記產生器中都是“普通”字元。 |
void |
parseNumbers()
指定此標記產生器應解析的數字。 |
void |
pushBack()
導致對此標記產生器的 nextToken 方法的下一個調用返回 ttype 欄位中的當前值,而不修改 nval 或 sval 欄位中的值。 |
void |
quoteChar(int ch)
指定此字元的比對對分隔此標記產生器中的字元串常數。 |
void |
resetSyntax()
重置此標記產生器的語法表,使所有字元都成為“普通”字元。 |
void |
slashSlashComments(boolean flag)
確定標記產生器是否識別 C++ 樣式註釋。 |
void |
slashStarComments(boolean flag)
確定標記產生器是否識別 C 樣式註釋。 |
String |
toString()
返回當前串流標記和在其上發生的行號的字元串表示形式。 |
void |
whitespaceChars(int low,
int hi)
指定 low <= c <= high 範圍中的所有字元 c 都是空白字元。 |
void |
wordChars(int low,
int hi)
指定 low <= c <= high 範圍中的所有字元 c 都是文字成分。 |
| 從類別 java.lang.Object 繼承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| 欄位詳細資訊 |
|---|
public int ttype
nextToken 方法之後,此欄位將包含剛讀取的標記的型別。對於單個字元標記,其值是轉換為一個整數的單一字元。對於參考的字元串標記,其值是引號字元。否則,其值是下列值之一:
TT_WORD 指示該標記是一個文字。
TT_NUMBER 指示該標記是一個數字。
TT_EOL 指示已讀到行的末尾。如果已使用參數 true 調用 eolIsSignificant 方法,則該欄位只能使用此值。
TT_EOF 指示已到達輸入串流的末尾。
此欄位的初始值為 -4。
eolIsSignificant(boolean),
nextToken(),
quoteChar(int),
TT_EOF,
TT_EOL,
TT_NUMBER,
TT_WORDpublic static final int TT_EOF
public static final int TT_EOL
public static final int TT_NUMBER
public static final int TT_WORD
public String sval
ttype 欄位的值是 TT_WORD 時,當前標記將是一個文字。ttype 欄位的值是一個引號字元時,當前標記將是一個參考的字元串標記。
此欄位的初始值為 null。
quoteChar(int),
TT_WORD,
ttypepublic double nval
ttype 欄位的值是 TT_NUMBER 時,當前標記將是一個數字。
此欄位的初始值為 0.0。
TT_NUMBER,
ttype| 建構子詳細資訊 |
|---|
@Deprecated public StreamTokenizer(InputStream is)
Reader r = new BufferedReader(new InputStreamReader(is)); StreamTokenizer st = new StreamTokenizer(r);
'A' 到 'Z'、從 'a' 到 'z' 以及從 '\u00A0' 到 '\u00FF' 的所有位元組值都被視為字母。
'\u0000' 到 '\u0020' 的所有位元組值都被視為空白。
'/' 是註釋字元。
'\'' 和雙引號 '"' 字元串參考字元。
is - 輸入串流。BufferedReader,
InputStreamReader,
StreamTokenizer(java.io.Reader)public StreamTokenizer(Reader r)
r - 提供輸入串流的 Reader 物件。| 方法詳細資訊 |
|---|
public void resetSyntax()
ordinaryChar 方法。
ordinaryChar(int)
public void wordChars(int low,
int hi)
low <= c <= high 範圍中的所有字元 c 都是文字成分。文字標記由一個文字成分後跟零或更多文字成分或數字成分組成。
low - 該範圍的低端。hi - 該範圍的高端。
public void whitespaceChars(int low,
int hi)
low <= c <= high 範圍中的所有字元 c 都是空白字元。空白字元僅用於分隔輸入串流中的標記。
指定範圍中字元串的任何其他屬性設置都被清除。
low - 該範圍的低端。hi - 該範圍的高端。
public void ordinaryChars(int low,
int hi)
low <= c <= high 範圍中的所有字元 c 在此標記產生器中都是“普通”字元。關於普通字元的更多資訊,請參見 ordinaryChar 方法。
low - 該範圍的低端。hi - 該範圍的高端。ordinaryChar(int)public void ordinaryChar(int ch)
ttype 欄位設置為該字元的值。
將行結束符字元變為“普通”字元會妨礙 StreamTokenizer 計算行數的能力。lineno 方法將不再能夠在其行計數中反映此類別結束符字元的存在。
ch - 字元。ttypepublic void commentChar(int ch)
指定字元的任何其他屬性設置均被清除。
ch - 字元。public void quoteChar(int ch)
當 nextToken 方法遇到一個字元串常數時,ttype 欄位將被設置為該字元串分隔符,sval 欄位被設置為此字元串的正文。
如果遇到字元串引號字元,則將識別一個字元串,該字元串包括字元串引號字元(不包括)到下一個相同的字元串引號字元(不包括)之間、或者到行結束符或檔案末尾的所有字元。常規的轉義序列(如 "\n" 和 "\t")將被識別,並在解析該字元串時轉換為單一字元。
指定字元的任何其他屬性設置均被清除。
ch - 字元。nextToken(),
sval,
ttypepublic void parseNumbers()
0 1 2 3 4 5 6 7 8 9 . -
都具有“數字”屬性。
當解析器遇到具有雙精度浮點數字格式的文字標記時,會將該標記視為數字而不是文字,方法是通過將 ttype 欄位設置為值 TT_NUMBER,並將該標記的數字值放入 nval 欄位。
nval,
TT_NUMBER,
ttypepublic void eolIsSignificant(boolean flag)
nextToken 方法返回 TT_EOL,還將 ttype 欄位設置為此值。
一行是一個字元序列,以回車(Enter)符 ('\r') 或者以新行符 ('\n') 結尾。另外,回車(Enter)符後面緊跟新行符被視為一個單行末尾標記。
如果此 flag 為 false,行末尾字元被視為空白並僅用作分隔標記。
flag - 為 true 指示行末尾字元為分隔標記;為 false 指示行末尾字元為空白。nextToken(),
ttype,
TT_EOLpublic void slashStarComments(boolean flag)
true,此串流標記產生器識別 C 樣式註釋。後面出現的 /* 和 */ 之間的所有文本將被丟棄。
如果此標誌參數為 false,則不特殊對待 C 樣式註釋。
flag - 為 true 指示識別並忽略 C 樣式註釋。public void slashSlashComments(boolean flag)
true,此串流標記產生器識別 C++ 樣式註釋。任何出現的兩個連續斜線字元 ('/') 均被視為一個註釋的開始並一直延伸到行的末尾。
如果此標誌參數為 false,則不特殊對待 C++ 樣式註釋。
flag - 為 true 指示識別並忽略 C++ 樣式註釋。public void lowerCaseMode(boolean fl)
true,則在此標記產生器的 nextToken 方法返回文字標記時(ttype 欄位具有值 TT_WORD),sval 欄位中的值為小寫字母。
如果此標誌參數為 false,則 sval 欄位未被修改。
fl - 為 true 指示所有文字標記應為小寫字母。nextToken(),
ttype,
TT_WORD
public int nextToken()
throws IOException
ttype 欄位中返回。關於該標記的其他資訊可能位於此標記產生器的 nval 欄位或 sval 欄位中。
此類別的典型客戶機首先建立語法表,然後循環調用 nextToken 來解析後續標記,直到返回 TT_EOF。
ttype 欄位的值。
IOException - 如果發生 I/O 錯誤。nval,
sval,
ttypepublic void pushBack()
nextToken 方法的下一個調用返回 ttype 欄位中的當前值,而不修改 nval 或 sval 欄位中的值。
nextToken(),
nval,
sval,
ttypepublic int lineno()
public String toString()
未指定返回的精確字元串,但可以將以下範例視為典型範例:
Token['a'], line 10
Object 中的 toStringnval,
sval,
ttype
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。