【发布时间】:2015-04-29 05:45:38
【问题描述】:
我有一个用于解析令牌的 StreamTokenizer。当我将以下内容传递给标准输入时:
a b_c d
解析的标记(在标准输出上)是:
a
b
null
c
d
为什么会这样?如果下划线是单词字符,则应该有 3 个标记和第二个“b_c”。如果下划线是分隔符,则应该有 4 个标记。我认为空令牌没有意义。
Q1:为什么会有空令牌?
Q2:为什么有人会设计一个 StreamTokenizer 来生成空令牌?
Ideone 脚本:http://ideone.com/e.js/RFbPpJ
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StreamTokenizer st = new StreamTokenizer(br);
while (st.nextToken() != StreamTokenizer.TT_EOF) {
System.out.println(st.sval);
}
}
}
【问题讨论】:
标签: java stream null tokenize java-io