gpt4 book ai didi

java - StreamTokenizer 转义字符

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:59:23 27 4
gpt4 key购买 nike

我正在使用 Java 的 StreamTokenizer 来标记代码文本输入。
当转义字符出现在字符串中时,分词器将它们取消转义,而我想保持字符串不变。

例如:

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,因为它可以很好地处理评论删除

最佳答案

StreamTokenizer constructor JavaDoc状态:

All byte values '\u0000' through '\u0020' are considered to be white space.

\t 有点像\u000a... 您可以使用 whitespaceChars()方法来改变这种行为。

旁注:如果您选择 println() 包含 \t 的字符串,大多数/所有终端会将光标移动到下一个制表符位置,而不是实际打印 \t...

干杯,

关于java - StreamTokenizer 转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30457104/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com