StreamTokenizer 读取空格数字
时间: 2024-05-16 22:15:44 浏览: 104
StreamTokenizer 是一个 Java 类,用于将输入流分解为标记或词法单元。默认情况下,它将空格、制表符、换行符和回车符视为分隔符,并将数字和单词视为标记。
要读取包含空格的数字,可以使用 StreamTokenizer 的 nextToken() 方法读取下一个标记,并使用 nval 属性获取其数值。例如,以下代码将读取输入流中的第一个数字,并将其存储在变量 num 中:
```java
StreamTokenizer tokenizer = new StreamTokenizer(inputStream);
tokenizer.nextToken();
if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
double num = tokenizer.nval;
// 处理 num
}
```
注意,如果输入流中存在非数字字符,nextToken() 方法将返回下一个标记的类型,可以使用 ttype 属性获取其类型。在上面的示例中,我们检查 ttype 是否是 TT_NUMBER,以确保我们读取的是数字。
相关问题
StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));读取空格数字
可以使用以下代码来读取空格和数字:
```
StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
st.nextToken(); // 读取下一个token
while (st.ttype != StreamTokenizer.TT_EOF) { // 判断是否读到文件结尾
if (st.ttype == StreamTokenizer.TT_NUMBER) { // 判断当前token是否为数字
double num = st.nval; // 获取数字的值
System.out.println(num);
}
st.nextToken(); // 读取下一个token
}
```
注意,`st.ttype` 表示当前token的类型,`StreamTokenizer.TT_NUMBER` 表示数字类型,`st.nval` 表示数字的值。
StreamTokenizer如何处理多组读入数据
StreamTokenizer 可以通过设置分隔符来处理多组读入数据。可以使用 resetSyntax() 方法将分隔符设置为空格和换行符,然后使用 nextToken() 方法逐个读取数据。在读取完一组数据后,可以使用 eolIsSignificant() 方法将换行符设置为分隔符,以便处理下一组数据。
阅读全文