Clicky

Programma “Parola.java” | BLOG - Julian's WebSite Programma “Parola.java”

Programma “Parola.java” {1}

//programma in java fatto da me che dice quale è la parola più lunga in un file di testo…utile se si vuole imparare qualcosa sulla gestione delle stringhe

import java.io.FileReader;
import java.io.PrintWriter;
import java.util.Scanner;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.util.StringTokenizer;

/**
Classe che trova in un testo la parola di lunghezza più lunga e ne
visualizza la lunghezza.
*/


public class Parola
{
public static void main( String args[]) throws IOException
{
// Acquisizione del nome file di testo tramite la classe Scanner

Scanner in= new Scanner(System.in);
System.out.println(“Introdurre il nome del file di testo di cui”
+” trovare la parola \npiu’ lunga comprensivo di estensione:\n”);
String line=in.nextLine();

try
{
// Acquisizione del file tramite la classe FileReader
// e la classe Scanner. Possibile FileNotFoundException.

FileReader input=new FileReader(line);
Scanner file1= new Scanner(input);
String[] max=new String[1];
max[0]=””;
int n=0;
int i=0;

while(file1.hasNextLine())
{
// Elaborazioni sulle stringhe di testo e confronto
// tra le loro lunghezze.Utilizzo classe StringTokenizer.

String riga=file1.nextLine();
StringTokenizer a=new StringTokenizer(riga);

while(a.hasMoreTokens())
{
String b=a.nextToken();

if(max[i].length()<=b.length()&&isWord(b))
{
i++;

if(i==max.length)
max=raddoppio(max);

max[i]=b;
}//fine if

n++;
}

}//fine while e operzioni sul file

input.close(); // chiusura file di lettura

//stampa della parola o delle parole con le relative lunghezze

System.out.println(“\n”+line+” contiene “+n+” parole.\n”);
int f=0;
int d=1;

for(int a=0;a<=i;a++)
{
if(max[a].length()==max[i].length())
f++;
}

if(f>1)
{
System.out.println(“Le parole piu’ lunghe sono:\n”);

for(int b=0;b<=i;b++)
{
if(max[b].length()==max[i].length())
{
System.out.println(d+”. “+max[b]);
d++;
}//fine if
}//fine for

System.out.println(“\ne contengono tutte “+
max[i].length()+” lettere\n”);
}//fine if

else
System.out.println(“La parola piu’ lunga e’:\n\n”+
max[i]+”\n\ne contiene “+max[i].length()+” lettere\n”);

} //fine try
catch(FileNotFoundException e)
{
// Cattura dell’eccezione FileNotFoundException

System.err.println(“File: “+line+” non trovato\n”);
System.exit(1); // uscita dal programma
}

} //fine main

/**
Metodo statico che verifica se è un parola è composta
da sole lettere.
*/

public static boolean isWord(String a)
{
String word=a;
for(int i=0;i<word.length();i++)
{
char lettera=word.charAt(i);
if(!Character.isLetter(lettera))
return false;
} //fine for

return true;

} //fine metodo

/**
Metodo statico che radoppia le dimensioni di un array
*/

public static String[] raddoppio(String[] a)
{
String[] b=a;

String[] c = new String[2 * b.length];

for (int i = 0; i < b.length; i++)
c[i] = b[i];
//fine for

return c;

}//fine metodo

} //fine classe

Un Commento

  1. Julian
    21 Lug 2007 @ 16:25:10

    Il programma in Java non so a chi potrebbe servire ma va bene come prova del mio blog.

    Rispondi

Lascia un Commento