StreamTokenizer к Hashmap в ошибках вывода Java - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь сохранить каждое слово в качестве токена в хэш-карте.Однако иногда он хранит каждое слово, иногда он хранит несколько слов подряд, а иногда даже не сохраняет символы.

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.

Мне нужночтобы иметь возможность хранить каждый символ, число и слово как токен, но я не уверен, почему это не работает.

Часть файла:

========= ЭТО ФАЙЛ ЖАРГОНА, ВЕРСИЯ 2.9.12, 10 МАЯ 1993 =========

x Это Jargon File, всеобъемлющий сборник хакерского сленга, освещающий многие аспекты хакерских традиций, фольклора и юмора.

Этот документ (файл Jargon) находится в открытом доступе,свободно используется, распространяется и модифицируется.Нет (намеренно) никаких юридических ограничений на то, что вы можете с ним делать, но есть традиции относительно его правильного использования, к которым многие хакеры довольно сильно привязаны.Пожалуйста, расширьте вежливость правильного цитирования при цитировании файла, в идеале с номером версии, так как он будет меняться и расти со временем.(Примеры соответствующей формы цитирования: «Jargon File 2.9.12» или «Онлайновый хакерский Jargon File, версия 2.9.12, 10 мая 1993 г.».) ​​

Файл Jargon является общим наследиемхакерская культура.За прошедшие годы ряд людей посвятил значительное время ведению Файла и был признан сетью в целом его редакторами.Обязанности редакции включают в себя: сбор вкладов и предложений от других;искать подтверждающую информацию;для перекрестных ссылок связанных записей;сохранить файл в согласованном формате;и периодически объявлять и распространять обновленные версии.Текущие добровольные редакторы включают в себя:

1 Ответ

0 голосов
/ 28 сентября 2018

Измените sT.whitespaceChars(' ', 0) на sT.whitespaceChars(0, ' ') и измените sT.eolIsSignificant(true) на sT.eolIsSignificant(false).

Кроме того, вы должны использовать HashSet, а не HashMap.

...