vocales veces una txt texto repite repetidas por palabras palabra numeros los letras leer cuantas contar como caracteres cadena archivo java count

java - veces - ¿Contar líneas, palabras, personajes y las diez palabras principales?



contar vocales en java (5)

Hola, soy bastante nuevo en Stack Overflow, así que espero hacerlo correctamente y que alguien tenga la respuesta que necesito.

Actualmente estoy programando un programa en Java con Eclipse IDE y mi pregunta es esta:

Necesito un fragmento de código que haga lo siguiente

Se supone que debe obtener un archivo .TXT que contenga texto y, a partir de ese archivo .TXT, contar el número de filas e imprimirlo, contar el número de palabras e imprimirlo, contar el número de caracteres e imprimirlo. Y finalmente haga una lista de las 10 palabras principales utilizadas e imprima eso.

Toda la impresión se hace a la impresión del sistema

Soy bastante nuevo en Java y estoy teniendo algunas dificultades.

¿Alguien por ahí que puede proporcionarme estas líneas de código o que sabe dónde puedo encontrarlos? Quiero estudiar el código proporcionado, así es como aprendo mejor =)

Gracias a todos

No encontré el botón de edición, lo siento ...

Agregué esto a mi pregunta:

Jeje, es una tarea, pero no una tarea. Bien, veo que podría proporcionar lo que he hecho hasta ahora, creo que estoy bastante cerca, pero no está funcionando para mí. ¿Hay algo que me haya perdido?

// Class Tip import java.io.*; import java.util.*; class Tip { public static void main(String [] args) throws Exception { String root = System.getProperty("user.dir"); InputStream is = new FileInputStream( root + "//tip.txt" ); Scanner scan = new Scanner( is ); String tempString = ""; int lines = 0; int words = 0; Vector<Integer> wordLength = new Vector<Integer>(); int avarageWordLength = 0; while(scan.hasNextLine() == true) { tempString = scan.nextLine(); lines++; } is.close(); is = new FileInputStream( root ); scan = new Scanner( is ); while(scan.hasNext() == true) { tempString = scan.next(); wordLength.add(tempString.length()); words++; } for(Integer i : wordLength) { avarageWordLength += i; } avarageWordLength /= wordLength.size(); System.out.println("Lines : " + lines); System.out.println("Words : " + words); System.out.println("Words Avarage Length : " + avarageWordLength); is.close(); } }


Al escribir "ejemplo de palabras de recuento de Java" en Google surgieron algunas sugerencias.

Este enlace parece ser un punto de partida decente.

Este simple ejemplo de aquí también podría darte algunas ideas:

public class WordCount { public static void main(String args[]) { System.out.println(java.util.regex.Pattern.compile("[//w]+").split(args[0].trim()).length); } }


Aquí hay una solución:

public static void main(String[] args) { int nRows = 0; int nChars = 0; int nWords = 0; final HashMap<String, Integer> map = new HashMap<String, Integer>(); try { BufferedReader input = new BufferedReader(new FileReader("c://test.txt")); try { String line = null; Pattern p = Pattern.compile("[^//w]+"); while ((line = input.readLine()) != null) { nChars += line.length(); nRows++; String[] words = p.split(line); nWords += words.length; for (String w : words) { String word = w.toLowerCase(); Integer n = map.get(word); if (null == n) map.put(word, 1); else map.put(word, n.intValue() + 1); } } TreeMap<String, Integer> treeMap = new TreeMap<String, Integer>(new Comparator<String>() { @Override public int compare(String o1, String o2) { if (map.get(o1) > map.get(o2)) return -1; else if (map.get(o1) < map.get(o2)) return 1; else return o1.compareTo(o2); } }); treeMap.putAll(map); System.out.println("N.º Rows: " + nRows); System.out.println("N.º Words: " + nWords); System.out.println("N.º Chars: " + nChars); System.out.println(); System.out.println("Top 10 Words:"); for (int i = 0; i < 10; i++) { Entry<String, Integer> e = treeMap.pollFirstEntry(); System.out.println("Word: " + e.getKey() + " Count: " + e.getValue()); } } finally { input.close(); } } catch (IOException ex) { ex.printStackTrace(); } }


Es posible que aproveche el uso de Apache Commons Utils, que tiene una útil utilidad llamada WordUtil que hace algunas cosas simples con oraciones y palabras.


Esto se parece demasiado a una tarea para garantizar una respuesta completa, pero le daré algunos consejos sobre dónde buscar en la API de Java:

FileReader y BufferedReader para obtener los datos. API Collections para almacenar sus datos. Una estructura de datos personalizada para almacenar su lista de palabras y recuento de ocurrencias Comparator o Comparable para ordenar su estructura de datos y obtener la lista de los 10 principales.

Una vez que haya comenzado a trabajar y tenga algo funcionando y necesite ayuda específica, vuelva aquí con preguntas específicas y luego haremos nuestro mejor esfuerzo para ayudarlo.

¡Buena suerte!


No es una respuesta completa pero recomendaría ver los tutoriales Java IO de Sun. Se trata de leer y escribir desde archivos. Especialmente el tutorial sobre escáneres y formateadores

Aquí está el resumen del tutorial del sitio web

La programación de E / S a menudo implica traducir desde y hacia los datos pulcramente formateados con los que los humanos les gusta trabajar. Para ayudarlo con estas tareas, la plataforma Java proporciona dos API. La API del escáner divide la entrada en tokens individuales asociados con bits de datos. La API de formateo reúne datos en forma agradable, legible y legible.

Entonces, para mí, parece que son exactamente las API sobre las que preguntas