Подсчет слов (букв) в файле
|
|
CHerry | Дата: Среда, 2011-09-21, 22:10:42 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 141
Статус: Offline
| 1. В определенном файле посчитать слова, а возможно и буквы. 2. К предыдущему решению квадратных уравнений добавить обработку разных исключений 3. Найти модель UML диаграмм, ER диаграмм для различных проектов.
|
|
| |
j_todesky | Дата: Четверг, 2011-09-22, 21:46:14 | Сообщение # 2 |
Рядовой
Группа: Проверенные
Сообщений: 18
Статус: Offline
| Написать-то написал, но файл у меня открыть так и не получилось ( постоянно не находит файл ! Может кто какую-то ошибку найдет !?
import java.util.*; public class Count { public static String readFile() { String strLine=null; try { FileInputStream in = new FileInputStream("CrazyText.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(in)); while((strLine=br.readLine())!=null) { System.out.println(strLine); } } catch (Exception e) { System.out.println(e); } return strLine ; } public static void main(String[] args)//throws Exception { String b=readFile(); String [] text = b.split("\\s"); int count = 0; for( int i=0; i< text.length; i++) { if (text[i]!= null&& !"".equals(text[i])) { count++; } } System.out.println("the quantity of words = "+count); String tg= b.replace(" ",""); char [] stringArray; stringArray=tg.toCharArray(); char [] letters= stringArray; int lettersCount=0;
for (int j=0;j<letters.length; j++) { if(letters[j]!=0) { lettersCount++; } } System.out.println("The quantity of letters = "+lettersCount);
} }
|
|
| |
CHerry | Дата: Пятница, 2011-09-23, 02:11:57 | Сообщение # 3 |
Генералиссимус
Группа: Администраторы
Сообщений: 141
Статус: Offline
| Quote (j_todesky) Написать-то написал, но файл у меня открыть так и не получилось ( постоянно не находит файл ! Может кто какую-то ошибку найдет !? Попробуй напиши полный путь к своему файлу FileInputStream in = new FileInputStream("D:\\example\\CrazyText.txt");
А каталогом по умолчанию где создаются и читаютсяфайлы ...\workspace\(имя проекта)\(имя файла), попробуй перемести в папку с проектом.
У меня твой код работает, но потом что-то печатает и вылетает : Exception in thread "main" java.lang.NullPointerException at Count.main(Count.java:26)
в 26 строке вот что: .... 25 public static void main(String[] args)//throws Exception 26 { ....
|
|
| |
CHerry | Дата: Пятница, 2011-09-23, 03:24:18 | Сообщение # 4 |
Генералиссимус
Группа: Администраторы
Сообщений: 141
Статус: Offline
| Code import java.io.*;
public class FileProcessing { // точка входа public static void main(String[] args) { countCharInTheFile(existFile("D:\\java\\book\\Thinking in Java.txt")); }
// открываем файл, а если его нет то создаем static File existFile (String fileName){ //создаем экземпляр класса File и ассоцииуем с нашим файлом File textFile = new File(fileName);
if(textFile.isFile()){ //если файл существует System.out.println("Filename:\t" + textFile.getName()); System.out.println("Path:"+ textFile.getAbsolutePath()); System.out.println("Filesize:\t" + textFile.length()); } else { // если файла нет, создаем System.out.println("File " + textFile.getName() + " not found."); try { textFile.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block System.out.println("Can not create the file."); e.printStackTrace(); } System.out.println("File " + textFile.getName() + " created in :"+ textFile.getPath()); } return textFile; } // выводим static void countCharInTheFile(File textFile){ // считываем в BufferedReader BufferedReader BufferedBlock; try { BufferedBlock = new BufferedReader(new FileReader(textFile)); } catch (FileNotFoundException e) { // TODO Auto-generated catch block System.out.println("FileNotFound"); e.printStackTrace(); return; } String TextBlock; int stringCount=0; int countSimbol[] = new int[107]; //массив для накопления суммирования количества по каждому символу // ЁЂЃЄЅІЇЈЉЊЋЌ?ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя?ёђѓєѕії try { while ((TextBlock = BufferedBlock.readLine())!= null) { stringCount++; // считаем количество обрабатываемых строк int i=0; // индекс для масива simbol[] // перебор кодовой таблицы символов // ЁЂЃЄЅІЇЈЉЊЋЌ?ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя?ёђѓєѕії for (char utfChar='Ё';utfChar<='ї';utfChar++){ int rate=countCharInString(TextBlock,utfChar); // подсчет количества текущего символа в текстовом блоке i++; countSimbol[i] += rate; if (rate>0) { System.out.println("String#"+stringCount+" "+"char-"+utfChar+" found-"+rate); } } } } catch (IOException e) { // TODO Auto-generated catch block System.out.println("file Input/Output error."); e.printStackTrace(); } System.out.println("Обработано-"+stringCount+" строк."); // Выводим на печать количество найденых букв int i=0; for (char utfChar='Ё';utfChar<='ї';utfChar++){ i++; System.out.println(utfChar+" - "+countSimbol[i]); } } // считаем количество искомых символов в строке static int countCharInString (String Str, char Chr){ int Count=0; for (int Index = Str.indexOf(Chr, 0); Index>=0; ){ Index = Str.indexOf(Chr, Index+1); Count++; } return Count; } }
|
|
| |
MINIsha | Дата: Суббота, 2011-09-24, 23:43:27 | Сообщение # 5 |
Генерал-майор
Группа: Администраторы
Сообщений: 21
Статус: Offline
| Добавлено (2011-09-24, 23:43:27) --------------------------------------------- Code import java.io.*;
import java.util.Date;
public class ReadWriteFile { public static void main (String[] args) throws IOException{ String line = null; StringBuffer sb = new StringBuffer(); int i = 0; int count = 0; int count1 = 0; char z; File aFile = new File("java.txt"); if (aFile.exists() == false){ aFile.createNewFile(); } do{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Введите ваш текст: "); String text = br.readLine(); System.out.println("Спасибо, ваш текст: "); System.out.println(text); System.out.println("Хотите записать его в файл? Y/N"); BufferedReader otvet = new BufferedReader(new InputStreamReader(System.in)); z = otvet.readLine().charAt(0); if ((z=='Y')||(z=='y')){ try { FileWriter write = new FileWriter(aFile,true);//создаем объект типа FileWriter BufferedWriter bw = new BufferedWriter(write);//создаём BufferedWriter Date dt =new Date(); //создаём дату String s = dt.toString(); //переводим её в строку bw.write(text+"\n");//записываем текст в буфер bw.write(s+"\n");//добавляем текущую дату записи bw.flush();//освобождаем буфер FileReader read = new FileReader(aFile);//создаём объект типа FileReader BufferedReader br1 = new BufferedReader(read);//создаём BufferedReader while ((line = br1.readLine())!=null ){ //построчно считываем в StringBuffer sb, //объявленный в начале, sb.append(line); //текст из файла sb.append("\n"); } char[] k = sb.toString().toCharArray();//переганяю StringBuffer sb в массив char[] k for (i = 0; i<k.length; i++){ //запускаю цикл со счётчиком i для перебора символов массива if (k[i]==' '){// ставлю условие на подсчет пробелов (кол-во слов) count++; //если условие верно - увеличиваю счётчик слов } if (k[i]=='\n'){//условие на подсчёт переводов строки (что равно кол-ву строк) count1++; //если условие верно - увеличиваю счётчик строк } } System.out.println("Количество слов в файле: "+ (count+count1) ); System.out.println("Количество строк в файле: "+ count1); } catch(IOException e){ System.out.println("Ошибка! Даже не знаю по какой причине!!!"+ e.getMessage());} } }
while((z!='Y')&&(z!='y')); } }
Почему? ДА ЧЕРЕЗ ПОТОМУ КАК ЧТОЖ!
Сообщение отредактировал MINIsha - Суббота, 2011-09-24, 23:44:48 |
|
| |
m_voevudskiy | Дата: Воскресенье, 2011-09-25, 18:54:21 | Сообщение # 6 |
Рядовой
Группа: Проверенные
Сообщений: 3
Статус: Offline
| а подскажите как можно дописать в файл текст не удаляя прежнего? я подозреваю, что дело в первой строке, а как ее изменить ума не хватает.
PrintWriter zzz = null; try { zzz = new PrintWriter(new FileOutputStream("my_test_file.txt")); } catch(FileNotFoundException e) { System.out.println("Ошибка открытия файла my_test_file.txt"); System.exit(0); } zzz.println("Это первая строка"); zzz.println("Это вторая строка");
zzz.close();
} }
Сообщение отредактировал m_voevudskiy - Воскресенье, 2011-09-25, 18:54:56 |
|
| |
MINIsha | Дата: Понедельник, 2011-09-26, 16:51:18 | Сообщение # 7 |
Генерал-майор
Группа: Администраторы
Сообщений: 21
Статус: Offline
| Quote (m_voevudskiy) а подскажите как можно дописать в файл текст не удаляя прежнего? я подозреваю, что дело в первой строке, а как ее изменить ума не хватает.
Code FileWriter write = new FileWriter(aFile,true);//создаем объект типа FileWriter BufferedWriter bw = new BufferedWriter(write);//создаём BufferedWriter Date dt =new Date(); //создаём дату String s = dt.toString(); //переводим её в строку bw.write(text+"\n");//записываем текст в буфер bw.write(s+"\n");//добавляем текущую дату записи bw.flush();//освобождаем буфер Мишанька!!! Смотри код выше!!!
Почему? ДА ЧЕРЕЗ ПОТОМУ КАК ЧТОЖ!
Сообщение отредактировал MINIsha - Понедельник, 2011-09-26, 16:53:18 |
|
| |