W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
java.lang.Object
|---java.io.StreamTokenizer
public class StreamTokenizer
extends Object
StreamTokenizer 類接受一個輸入流并將其解析為“令牌”,從而允許一次讀取一個令牌。 解析過程由一個表和許多可以設(shè)置為各種狀態(tài)的標(biāo)志控制。 流標(biāo)記器可以識別標(biāo)識符、數(shù)字、帶引號的字符串和各種注釋樣式。
從輸入流中讀取的每個字節(jié)都被視為 '\u0000' 到 '\u00FF' 范圍內(nèi)的一個字符。 字符值用于查找字符的五個可能屬性:空格、字母、數(shù)字、字符串引號和注釋字符。 每個字符可以有零個或多個這些屬性。
此外,一個實例有四個標(biāo)志。 這些標(biāo)志表明:
一個典型的應(yīng)用程序首先構(gòu)造這個類的一個實例,設(shè)置語法表,然后在循環(huán)的每次迭代中重復(fù)循環(huán)調(diào)用 nextToken 方法,直到它返回值 TT_EOF。
Since:
JDK1.0
修飾符和類型 | 字段 | 描述 |
---|---|---|
double | nval | 如果當(dāng)前標(biāo)記是數(shù)字,則此字段包含該數(shù)字的值。 |
String | sval | 如果當(dāng)前標(biāo)記是單詞標(biāo)記,則此字段包含一個字符串,給出單詞標(biāo)記的字符。 |
static int | TT_EOF | 一個常量,指示已讀取流的結(jié)尾。 |
static int | TT_EOL | 一個常量,表示已讀取行尾。 |
static int | TT_NUMBER | 表示已讀取數(shù)字標(biāo)記的常量。 |
static int | TT_WORD | 一個常量,表示已讀取單詞標(biāo)記。 |
int | ttype | 調(diào)用 nextToken 方法后,該字段包含剛剛讀取的令牌的類型。 |
構(gòu)造函數(shù) | 描述 |
---|---|
StreamTokenizer(InputStream is) | 已棄用。 從 JDK 版本 1.1 開始,標(biāo)記輸入流的首選方法是將其轉(zhuǎn)換為字符流。 |
StreamTokenizer(Reader r) | 創(chuàng)建一個解析給定字符流的分詞器。 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
void | commentChar(int ch) | 指定字符參數(shù)開始一個單行注釋。 |
void | eolIsSignificant(boolean flag) | 確定是否將行尾視為標(biāo)記。 |
int | lineno() | 返回當(dāng)前行號。 |
void | lowerCaseMode(boolean fl) | 確定單詞標(biāo)記是否自動小寫。 |
int | nextToken() | 從此標(biāo)記器的輸入流中解析下一個標(biāo)記。 |
void | ordinaryChar(int ch) | 指定字符參數(shù)在此標(biāo)記器中是“普通的”。 |
void | ordinaryChars(int low, int hi) | 指定范圍 low <= c <= high 中的所有字符 c 在此標(biāo)記器中都是“普通的”。 |
void | parseNumbers() | 指定應(yīng)由此標(biāo)記器解析數(shù)字。 |
void | pushBack() | 導(dǎo)致對該標(biāo)記器的 nextToken 方法的下一次調(diào)用返回 ttype 字段中的當(dāng)前值,而不是修改 nval 或 sval 字段中的值。 |
void | quoteChar(int ch) | 指定此字符的匹配對分隔此標(biāo)記器中的字符串常量。 |
void | resetSyntax() | 重置此標(biāo)記器的語法表,以便所有字符都是“普通的”。 |
void | slashSlashComments(boolean flag) | 確定標(biāo)記器是否識別 C++ 樣式的注釋。 |
void | slashStarComments(boolean flag) | 確定分詞器是否識別 C 風(fēng)格的注釋。 |
String | toString() | 返回當(dāng)前流標(biāo)記的字符串表示形式和它出現(xiàn)的行號。 |
void | whitespaceChars(int low, int hi) | 指定范圍 low <= c <= high 的所有字符 c 都是空白字符。 |
void | wordChars(int low, int hi) | 指定 low <= c <= high 范圍內(nèi)的所有字符 c 都是單詞組成部分。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
public static final int TT_EOF
一個常量,指示已讀取流的結(jié)尾。
public static final int TT_EOL
一個常量,表示已讀取行尾。
public static final int TT_NUMBER
表示已讀取數(shù)字標(biāo)記的常量。
public static final int TT_WORD
一個常量,表示已讀取單詞標(biāo)記。
public double nval
如果當(dāng)前標(biāo)記是數(shù)字,則此字段包含該數(shù)字的值。 當(dāng) ttype 字段的值為 TT_NUMBER 時,當(dāng)前標(biāo)記是一個數(shù)字。
該字段的初始值為 0.0。
public String sval
如果當(dāng)前標(biāo)記是單詞標(biāo)記,則此字段包含一個字符串,給出單詞標(biāo)記的字符。 當(dāng)前標(biāo)記是帶引號的字符串標(biāo)記時,此字段包含字符串的正文。
當(dāng) ttype 字段的值為 TT_WORD 時,當(dāng)前標(biāo)記是一個單詞。 當(dāng) ttype 字段的值是引號字符時,當(dāng)前標(biāo)記是帶引號的字符串標(biāo)記。
該字段的初始值為空。
public int ttype
調(diào)用 nextToken 方法后,該字段包含剛剛讀取的令牌的類型。 對于單個字符標(biāo)記,其值為單個字符,轉(zhuǎn)換為整數(shù)。 對于帶引號的字符串標(biāo)記,其值為引號字符。 否則,其值為以下之一:
該字段的初始值為-4。
@Deprecated public StreamTokenizer(InputStream is)
已棄用。 從 JDK 版本 1.1 開始,標(biāo)記輸入流的首選方法是將其轉(zhuǎn)換為字符流,例如:
Reader r = new BufferedReader(new InputStreamReader(is));
StreamTokenizer st = new StreamTokenizer(r);
創(chuàng)建解析指定輸入流的流標(biāo)記器。 流標(biāo)記器初始化為以下默認(rèn)狀態(tài):
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
is | 一個輸入流。 |
public StreamTokenizer(Reader r)
創(chuàng)建一個解析給定字符流的分詞器。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
r | 提供輸入流的 Reader 對象。 |
Since:
JDK1.1
public void resetSyntax()
重置此標(biāo)記器的語法表,以便所有字符都是“普通的”。
public void wordChars(int low, int hi)
指定 low <= c <= high 范圍內(nèi)的所有字符 c 都是單詞組成部分。 一個詞標(biāo)記由一個詞成分組成,后跟零個或多個詞成分或數(shù)字成分。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
low | 范圍的低端。 |
hi | 范圍的高端。 |
public void whitespaceChars(int low, int hi)
指定范圍 low <= c <= high 的所有字符 c 都是空白字符。 空白字符僅用于分隔輸入流中的標(biāo)記。
指定范圍內(nèi)字符的任何其他屬性設(shè)置都將被清除。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
low | 范圍的低端。 |
hi | 范圍的高端。 |
public void ordinaryChars(int low, int hi)
指定范圍 low <= c <= high 中的所有字符 c 在此標(biāo)記器中都是“普通的”。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
low | 范圍的低端。 |
hi | 范圍的高端。 |
public void ordinaryChar(int ch)
指定字符參數(shù)在此標(biāo)記器中是“普通的”。 它刪除了字符作為注釋字符、單詞組件、字符串分隔符、空格或數(shù)字字符的任何特殊意義。 當(dāng)解析器遇到這樣的字符時,解析器將其視為單字符標(biāo)記并將 ttype 字段設(shè)置為字符值。
將行終止符設(shè)置為“普通”可能會干擾 StreamTokenizer 計算行數(shù)的能力。 lineno 方法可能不再在其行數(shù)中反映此類終止符的存在。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
ch | 字符。 |
public void commentChar(int ch)
指定字符參數(shù)開始一個單行注釋。 此流標(biāo)記器忽略從注釋字符到行尾的所有字符。
指定字符的任何其他屬性設(shè)置都將被清除。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
ch | 字符。 |
public void quoteChar(int ch)
指定此字符的匹配對分隔此標(biāo)記器中的字符串常量。
當(dāng) nextToken 方法遇到字符串常量時,ttype 字段設(shè)置為字符串分隔符,sval 字段設(shè)置為字符串正文。
如果遇到字符串引號字符,則識別字符串,該字符串由字符串引號字符之后(但不包括)直到(但不包括)相同字符串引號字符或行終止符的下一次出現(xiàn)為止的所有字符組成 ,或文件結(jié)尾。 在解析字符串時,常見的轉(zhuǎn)義序列(例如“\n”和“\t”)會被識別并轉(zhuǎn)換為單個字符。
指定字符的任何其他屬性設(shè)置都將被清除。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
ch | 字符。 |
public void parseNumbers()
指定應(yīng)由此標(biāo)記器解析數(shù)字。 此標(biāo)記器的語法表已修改,以便十二個字符中的每一個:
0 1 2 3 4 5 6 7 8 9 . -
具有“數(shù)字”屬性。
當(dāng)解析器遇到具有雙精度浮點數(shù)格式的單詞標(biāo)記時,它會將標(biāo)記視為數(shù)字而不是單詞,方法是將 ttype 字段設(shè)置為值 TT_NUMBER 并將標(biāo)記的數(shù)值放入 nval 字段。
public void eolIsSignificant(boolean flag)
確定是否將行尾視為標(biāo)記。 如果 flag 參數(shù)為 true,則此標(biāo)記器將行尾視為標(biāo)記; nextToken 方法返回 TT_EOL 并在讀取行尾時將 ttype 字段設(shè)置為此值。
行是以回車符 ('\r') 或換行符 ('\n') 結(jié)尾的字符序列。 此外,緊跟換行符的回車符被視為單個行尾標(biāo)記。
如果標(biāo)志為 false,則行尾字符被視為空格并僅用于分隔標(biāo)記。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
flag | true 表示行尾字符是單獨的標(biāo)記; false 表示行尾字符是空格。 |
public void slashStarComments(boolean flag)
確定分詞器是否識別 C 風(fēng)格的注釋。 如果 flag 參數(shù)為 true,則此流標(biāo)記器識別 C 樣式注釋。 連續(xù)出現(xiàn) / 和 / 之間的所有文本都將被丟棄。
如果 flag 參數(shù)為 false,則不會對 C 樣式注釋進行特殊處理。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
flag | true 表示識別和忽略 C 風(fēng)格的注釋。 |
public void slashSlashComments(boolean flag)
確定標(biāo)記器是否識別 C++ 樣式的注釋。 如果 flag 參數(shù)為真,則此流標(biāo)記器識別 C++ 樣式的注釋。 任何出現(xiàn)的兩個連續(xù)斜杠字符 ('/') 都被視為延伸到行尾的注釋的開頭。
如果 flag 參數(shù)為 false,則不會對 C++ 樣式的注釋進行特殊處理。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
flag | true 表示識別和忽略 C++ 風(fēng)格的注釋。 |
public void lowerCaseMode(boolean fl)
確定單詞標(biāo)記是否自動小寫。 如果 flag 參數(shù)為真,則每當(dāng)返回單詞標(biāo)記時,sval 字段中的值都會小寫(通過此標(biāo)記器的 nextToken 方法,ttype 字段的值為 TT_WORD。
如果 flag 參數(shù)為 false,則不修改 sval 字段。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
fl | true 表示所有單詞標(biāo)記都應(yīng)該小寫。 |
public int nextToken() throws IOException
從此標(biāo)記器的輸入流中解析下一個標(biāo)記。 下一個標(biāo)記的類型在 ttype 字段中返回。 有關(guān)令牌的其他信息可能在此標(biāo)記器的 nval 字段或 sval 字段中。
此類的典型客戶端首先設(shè)置語法表,然后坐在循環(huán)中調(diào)用 nextToken 來解析連續(xù)的令牌,直到返回 TT_EOF。
返回:
ttype 字段的值。
Throws:
Throw名稱 | Throw描述 |
---|---|
IOException | 如果發(fā)生 I/O 錯誤。 |
public void pushBack()
導(dǎo)致對該標(biāo)記器的 nextToken 方法的下一次調(diào)用返回 ttype 字段中的當(dāng)前值,而不是修改 nval 或 sval 字段中的值。
public int lineno()
返回當(dāng)前行號。
返回:
此流標(biāo)記器的當(dāng)前行號。
public String toString()
返回當(dāng)前流標(biāo)記的字符串表示形式和它出現(xiàn)的行號。
返回的精確字符串是未指定的,盡管以下示例可以被認(rèn)為是典型的:
Token['a'], line 10
覆蓋:
類 Object 中的 toString
返回:
令牌的字符串表示
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: