Java输出错误中从StreamTokenizer到Hashmap的问题

时间:2018-09-28 15:46:31

标签: java hashmap token word

我正在尝试将每个单词作为令牌存储到哈希图中。但是,有时会存储每个单词,有时会连续存储几个单词,有时甚至不存储字符。

public static void main(String[] args) {

    try {

        File file = new File("jarg2912.txt");
        FileReader fileReader = new FileReader(file);
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        StreamTokenizer sT = new StreamTokenizer(bufferedReader);
        sT.eolIsSignificant(true);
        sT.whitespaceChars(' ', 0);
        HashMap<String, Object> hashMap = new HashMap<String, Object>();
        while(sT.nextToken() != StreamTokenizer.TT_EOF) {
            if (sT.ttype == StreamTokenizer.TT_NUMBER) {
                hashMap.put(String.valueOf(sT.nval), sT);
            } else {
                hashMap.put(sT.sval, sT);
            }
        }
        fileReader.close();
        System.out.println("Index:");
        for (String key : hashMap.keySet()) {
            System.out.println(key);
        }

    } catch (IOException e) {
        e.printStackTrace();
    }

}

当前输出:

Plea
s own typed input.  Compare
Member
s bitmapped terminal the words "THE BAG" in
tenure
versa
readable
 as a qualifier.  "When is the system coming up?"
natures
indirect
Sun.
goes
behaviors
t.  The result is gossipy, funny,
datagram
idiosyncrasies
posed
reader.
general.
s last {{ITS}} machines, the one on the upper
obtusity
chances
crosstalk
rods
herself
potentially
but....
annoyance.
database-theory
Haven
covering
instances
Generic
prosyletic
Editing
computer-science
weakly
tune
cam
stampe
iterating.
aware
can
numerical
eXchange
aficionados.
award
stoppage
TM-postfix
23.0
mega-
car
floating
cat
.  Reports from {old fart}s are consistent that
flew
alarm
behavior.
stamps
depersonalization
carried
cleaning
Fnord.
Suns
Morse-code
motion
closed.
BAD
 has been adopted, retaining the DDT abbreviation.
s surroundings again
998.0
heavy-metal
apostrophes
distracted
Dick
poseurs
clothes
fragment
carrier
BAR
carries
response
independently
TENEX.

我需要能够存储每个符号,数字和单词作为令牌,但是我不确定为什么它不起作用。

文件的一部分:

=========这是JARGON文件,版本2.9.12,1993年5月10日=========

x 这是行话档案,黑客语的完整摘要 阐明了骇客文化,民俗和幽默的许多方面。

此文档(专业术语)是公共领域,可以自由获取 使用,共享和修改。 (有意)没有合法的 限制您可以使用它做什么,但是关于 它是许多黑客都非常重视的适当用途。 引用文件时,请提供适当的引用, 理想情况下使用版本号,因为版本号会随着时间的变化而增长。 (适当引用形式的示例:“ Jargon File 2.9.12”或 “在线黑客行话档案,版本2.9.12,1993年5月10日”。)

行话档案是黑客文化的共同遗产。 多年来,许多人自愿提供了 维护文件的时间,并被网络广泛认可 作为它的编辑。编辑职责包括:整理 他人的贡献和建议;寻找佐证 信息;交叉引用相关条目;将文件保存在 格式一致;并宣布和分发更新的版本 定期地。当前的志愿者编辑包括:

1 个答案:

答案 0 :(得分:0)

sT.whitespaceChars(' ', 0)更改为sT.whitespaceChars(0, ' '),并将sT.eolIsSignificant(true)更改为sT.eolIsSignificant(false)

此外,您应该使用HashSet,而不是HashMap。