我使用Java的StreamTokenizer
爲了標記化代碼文本輸入。
當轉義字符出現在字符串中時,標記器忽略它們,而我想保持字符串相同。StreamTokenizer unescape字符
例如:
Input: String str = "STRIN\tG";
StreamTokenizer Output: STRIN G
Wanted Output: STRIN\tG
我的代碼:
BufferedReader reader = new BufferedReader(new FileReader("test.java"));
StreamTokenizer tokenizer = new StreamTokenizer(reader);
boolean eof = false;
do {
int type = 0;
type = tokenizer.nextToken();
switch (type) {
case StreamTokenizer.TT_EOF:
eof = true;
break;
case '"':
System.out.println(tokenizer.sval);
break;
}
} while (!eof);
編輯
我選擇與StreamTokenizer
工作,因爲評論的良好的操控性去除
不使用的標記生成器對於這一點,使用String類的split方法。 – Stultuske
評論你的編輯(和問題):所以,你想輸出是完全一樣的輸入?爲什麼首先要檢查令牌?你認爲什麼代幣?你打算如何設置它們? – Stultuske
那是正確的。 **串**的輸出應該與輸入完全相同。 – Presen