Más Palabras

Cree una aplicación modular (acciones y / o funciones) que tenga:

a) Una función "quantes_linies" que recibirá el nombre del archivo de texto y nos encontrará cuantas lineas contiene el archivo.

b) Una función "quants_numeros" que recibirá el nombre del archivo de texto y nos encontrará cuantos números (sólo números sin letra) contiene el archivo.

c) Una función "quants_signes" que recibirá el nombre del archivo de texto y nos encontrará cuantas palabras contienen guión o apóstrofe. Si contiene los dos signos contará doble.

CUENTA! Puede reaprovechar las funciones / acciones que sean necesarias.

Por ejemplo, si suponemos que el archivo se encuentra en "c: \ temp \ archivo.txt" y contiene:

Una vez rellenado y enviado el formulario electrónico de suscripción se le comunicará un nombre de usuario y una contraseña (por ejemplo 12345) que permite el acceso al Archivo. La suscripción se activará después de haberse ingresado el importe de la suscripción a la cuenta corriente que se le facilitará junto con la clave de acceso.

Los resultados serían:

El archivo contiene 4 linea / as.
El archivo contiene 1 número / s.
El archivo contiene 7 signos (apóstrofe + guión).


  1.    import java.io.*;
  2.    import java.util.*;
  3.    import java.util.StringTokenizer;
  4.    import cs1.Keyboard;
  5.        
  6.    public class Mes_Paraules   {
  7.    
  8.    
  9.       public static String Reader (String arxiu) {
  10.          int i = 1, num_lletres;  String s = "";
  11.      
  12.          BufferedReader entrada;
  13.          boolean error = false;;
  14.          
  15.          try {
  16.             String info = "";
  17.             FileReader fr = new FileReader(arxiu);  // Ruta logica de l'arxiu que volem llegir
  18.             entrada = new BufferedReader(fr);
  19.             while((= entrada.readLine()) != null)  // Mentre trobi linees en l'arxiu
  20.             {
  21.                info = info + s;
  22.                System.out.println(s);
  23.            
  24.                
  25.            
  26.             }
  27.             entrada.close();
  28.             return(info);
  29.          }
  30.             catch(java.io.FileNotFoundException fnfex) {
  31.                System.out.println("Arxiu no trobat: " + fnfex);}
  32.          
  33.             catch(java.io.IOException ioex) {}
  34.          return"";
  35.       }
  36.        
  37.        
  38.       public static int conta_linies(String ruta_arxiu){
  39.          BufferedReader fitxer;
  40.          String linia="", missatge="";
  41.          int i;
  42.      
  43.          try{
  44.             FileReader fr = new FileReader(ruta_arxiu);
  45.             fitxer = new BufferedReader(fr);
  46.             linia = fitxer.readLine();
  47.             i=0;
  48.             while (linia != null){
  49.                i++;
  50.                linia = fitxer.readLine();
  51.             }
  52.             return i;
  53.          }
  54.            
  55.             catch(java.io.FileNotFoundException fnfex){
  56.                System.out.println("Arxiu no trobat: " + fnfex);
  57.                return (0);
  58.             }
  59.             catch(java.io.IOException ioex) {
  60.                return (0);
  61.             }
  62.      
  63.       }
  64.       public static int NumPalabras ( String frase )     {
  65.          String word;
  66.          StringTokenizer tokenizer;
  67.          int wordCount=0;
  68.      
  69.          tokenizer = new StringTokenizer (frase,"1234567890");
  70.          while (tokenizer.hasMoreTokens())
  71.          {
  72.             word = tokenizer.nextToken();
  73.             if (word.length()<frase.length()) wordCount++;
  74.          }
  75.          return (wordCount-1);
  76.       }
  77.        
  78.       public static int NumSignes ( String frase )       {
  79.          String word;
  80.          StringTokenizer tokenizer;
  81.          int wordCount=0;
  82.      
  83.          tokenizer = new StringTokenizer (frase,"''-\"");
  84.          while (tokenizer.hasMoreTokens())
  85.          {
  86.             word = tokenizer.nextToken();
  87.             if (word.length()<frase.length()) wordCount++;
  88.          }
  89.          return (wordCount-1);
  90.       }
  91.       public static int NumPalabras2 ( String frase )    {
  92.          String word;
  93.          StringTokenizer tokenizer;
  94.          int wordCount=0;
  95.      
  96.          tokenizer = new StringTokenizer (frase);
  97.          while (tokenizer.hasMoreTokens())
  98.          {
  99.             word = tokenizer.nextToken();
  100.             if (word.length()<frase.length()) wordCount++;
  101.          }
  102.          return (wordCount);
  103.       }
  104.       public static int EncuentraPalabra ( String frase)       
  105.       {
  106.          String palabra="";  
  107.          StringTokenizer tokenizer;
  108.          int wordCount=0;
  109.      
  110.          tokenizer = new StringTokenizer (frase);
  111.          while (tokenizer.hasMoreTokens())
  112.          {
  113.          //Coge primera, buclea, segunda, buclea
  114.             String palabra2;
  115.                
  116.            
  117.          
  118.             palabra2 = palabra;
  119.                    
  120.             int num_pal = NumPalabras2(frase); //numero de palabras en total
  121.             for (int i=0;i<num_pal;) {
  122.                palabra = tokenizer.nextToken();
  123.            
  124.                if (palabra2.equals(palabra))
  125.                   wordCount++;
  126.                i++;
  127.             }
  128.          }
  129.          return (wordCount);
  130.       }
  131.       public static void main (String args [])
  132.       {
  133.          String texto = "c:\\temp\\fitxer.txt", texto2="";
  134.      
  135.      
  136.      
  137.          texto2=Reader(texto);
  138.      
  139.          System.out.println("\nL'arxiu conté "+conta_linies(texto)+" linia/es");
  140.          System.out.println("L'arxiu conté "+NumPalabras(texto2)+" número/s");
  141.          System.out.println("L'arxiu conté "+NumSignes(texto2)+" signes (apòstrof + guionet)");
  142.      
  143.        
  144.       }}

No hay comentarios:

Publicar un comentario