Когда у меня в файле одно слово, то программа нормально работает, но когда несколько слов, то не работает. 1)Наверное надо обнулять s после каждого слова, но я не знаю как это сделать. 2)Как правильно учитывать ENTER при проверке символов? код:
| Код | package showfile; import java.io.*; import java.util.*; class ShowFile { public static void main(String[] args) throws IOException { int i; FileInputStream fin; try{ fin=new FileInputStream("TESt.txt"); } catch(FileNotFoundException e){ System.out.println("Файл не найден"); return; } catch(ArrayIndexOutOfBoundsException e){ System.out.println("ShowFile имя_файла"); return; } StringBuffer s= new StringBuffer(); TreeMap tm=new TreeMap(); do{ i=fin.read(); if (i==-1 || i==' ' || i=='!' || i=='"' || i==';' || i==':' || i=='?' || i=='.' || i==',' || i==')'|| i=='(' || i==' '){} else while(i!=-1 & i!=' ' & i!='!' & i!='"' & i!=';' & i!=':' & i!='?' & i!='.' & i!=',' & i!=')'& i!='(' & i!=' '){ s.append((char)i).toString(); i=fin.read(); } tm.put(s, new Integer(2)); } while(i!=-1 ); Set set=tm.entrySet(); Iterator it= set.iterator(); while(it.hasNext()){ Map.Entry me=(Map.Entry)it.next(); System.out.print(me.getKey()+": "); System.out.println(me.getValue()); } } }
|
результат(когда более одного слова):
| Код | Compiling 1 source file to D:\МОЯ ПАПКА\Java\Ноутон & Шилдт\Example_STRING\ShowFile\build\classes Note: D:\МОЯ ПАПКА\Java\Ноутон & Шилдт\Example_STRING\ShowFile\src\showfile\ShowFile.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. compile: run: Exception in thread "main" java.lang.ClassCastException: java.lang.StringBuffer at java.util.TreeMap.compare(TreeMap.java:1093) at java.util.TreeMap.put(TreeMap.java:465) at showfile.ShowFile.main(ShowFile.java:54) Java Result: 1 BUILD SUCCESSFUL (total time: 1 second)
|
|