StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));读取空格数字
时间: 2024-05-16 08:15:44 浏览: 153
可以使用以下代码来读取空格和数字:
```
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 来读取空格和数字。以下是一个示例代码:
```java
import java.io.*;
import java.util.*;
public class Example {
public static void main(String[] args) throws IOException {
String input = "10 20 30 40 50";
StreamTokenizer tokenizer = new StreamTokenizer(new StringReader(input));
tokenizer.whitespaceChars(' ', ' '); // 设置空格为分隔符
while (tokenizer.nextToken() != StreamTokenizer.TT_EOF) {
if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
System.out.println(tokenizer.nval);
}
}
}
}
```
该程序将输出:
```
10.0
20.0
30.0
40.0
50.0
```
在上面的示例中,使用 `StringReader` 将字符串转换为字符流,并将其传递给 `StreamTokenizer`。`whitespaceChars` 方法设置空格为分隔符,这样 `StreamTokenizer` 将使用空格分隔输入。在循环中,`nextToken` 方法将读取下一个标记,并且 `ttype` 成员变量将指示标记的类型。如果标记是数字,那么 `nval` 成员变量将包含该数字的值。
streamtokenizer
StreamTokenizer是Java中的一个类,用于将输入流分解为词法单元(tokens)。根据提供的引用内容,我们可以实例化一个StreamTokenizer对象并设置输入流,例如:
StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
需要注意的是,默认情况下,StreamTokenizer将许多字符视为非单词元素,因此在使用时需要手动设置。可以使用wordChars方法将需要的字符添加到单词元素中。通常,StreamTokenizer只能读取26个英文字母、汉字、数字,其他符号需要手动设置才能读入。
在算法题中,我们主要使用quoteChar和wordChars两个方法来处理StreamTokenizer对象。
阅读全文