Estoy utilizando la siguiente acción para leer archivos de texto:
Código:
La acción funciona bien, mi problema es más adelante ya que necesito conseguir que me diga cuantas lineas y vocales hay en el texto que lea (a parte de otras cosas xD)public static String Reader (String arxiu) { int i = 1, num_lletres; String s = ""; BufferedReader entrada; boolean error = false;; try { String info = ""; FileReader fr = new FileReader(arxiu); // Ruta logica de l'arxiu que volem llegir entrada = new BufferedReader(fr); while((s = entrada.readLine()) != null) // Mentre trobi linees en l'arxiu { info = info + s; System.out.println(i++ + ":\t" + s); } entrada.close(); return(info); } catch(java.io.FileNotFoundException fnfex) { System.out.println("Arxiu no trobat: " + fnfex);} catch(java.io.IOException ioex) {} return""; }
El tema es que si no usase el FileReader y crease un texto desde una String poniendo \n para cambiar de linea consigo que me diga cuantas lineas hay con esta función:
Código:
Pero con el texto del FileReader no hay manera que me localice los \n por lo que no consigo que el programa localice cuantas lineas hay.public static int devolver_linea(String info) { String word; StringTokenizer tokenizer; int wordCount=0; String retorno=""; tokenizer = new StringTokenizer (info, "\n"); while (tokenizer.hasMoreTokens()) { word = tokenizer.nextToken(); if (info.length() > wordCount) { wordCount++; } } return (wordCount); }
Con las palabras me pasa lo mismo, este es el codigo que estoy utilizando para ellas:
Código:
¿Alguna sugerencia?public static int NumPalabras ( String frase ) { String word; StringTokenizer tokenizer; int wordCount=0; tokenizer = new StringTokenizer (frase); while (tokenizer.hasMoreTokens()) { word = tokenizer.nextToken(); if (word.length()<frase.length()) wordCount++; } return (wordCount); }
Gracias