gpt4 book ai didi

java - StreamTokenizer 在遇到斜杠时停止

转载 作者:行者123 更新时间:2023-12-02 02:22:14 25 4
gpt4 key购买 nike

考虑这个在教程点上找到的程序(其中 br 是 BufferedReader 对象):

boolean eof = false;
// Parse incoming request
StreamTokenizer st = new StreamTokenizer(br);
do {
int token = st.nextToken();

switch (token) {
case StreamTokenizer.TT_EOF:
System.out.println("End of File encountered.");
eof = true;
break;

case StreamTokenizer.TT_EOL:
System.out.println("End of Line encountered.");
break;

case StreamTokenizer.TT_WORD:
System.out.println("Word: " + st.sval);
break;

case StreamTokenizer.TT_NUMBER:
System.out.println("Number: " + st.nval);
break;

default:
System.out.println((char) token + " encountered.");

if (token == '!') {
eof = true;
}
}
} while (!eof);

此代码片段适用于诸如“Hello this is a string”之类的字符串,它将打印出:

单词:你好

单词:这个

单词:是

单词:a

单词:字符串

但是如果我这样做:“Hello/this is a string”它只会打印出来

单词:你好

这是为什么,我该如何解决?

最佳答案

正斜杠/在 StreamTokenizer 类中不被视为普通字符。您可以使用普通Char 方法更改默认行为:

import java.io.*;

public class StreamTokenizerSO {
public static void main(String[] args) throws IOException {
String aString = "Hello /this is a string";
Reader inputString = new StringReader(aString);
BufferedReader br = new BufferedReader(inputString);

boolean eof = false;
// Parse incoming request
StreamTokenizer st = new StreamTokenizer(br);

st.ordinaryChar('/');

do {
int token = st.nextToken();

switch (token) {
case StreamTokenizer.TT_EOF:
System.out.println("End of File encountered.");
eof = true;
break;

case StreamTokenizer.TT_EOL:
System.out.println("End of Line encountered.");
break;

case StreamTokenizer.TT_WORD:
System.out.println("Word: " + st.sval);
break;

case StreamTokenizer.TT_NUMBER:
System.out.println("Number: " + st.nval);
break;

default:
System.out.println((char) token + " encountered.");

if (token == '!') {
eof = true;
}
}
} while (!eof);
}
}

通过谷歌搜索“StreamTokenizer 正斜杠”找到了这个并得到了这个旧链接:http://www.dickbaldwin.com/java/Java061.htm

关于java - StreamTokenizer 在遇到斜杠时停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48344730/

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