Pages: [1]   Go Down
Print
Author Topic: una prova in itinere  (Read 701 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
rox
Forumista
***
Offline Offline

Posts: 633


« on: 18-04-2009, 14:41:48 »

ragazzi ho provato a risolvere questo esercizio ma alla fine nel file mi compaiono una serie di "null",non riesco a capire il perchè testate
Code:
import java.io.*;
import javax.swing.*;
import java.util.*;
public class Itinere2006
{
public static boolean palindroma(String str)
{
int l=0;
int r=str.length()-1;

for(int i=0; i<str.length()/2; i++)
{
if(str.charAt(l)==str.charAt(r))
{
l++;
r--;
}
else
return false;
}
return true;
}

public static boolean palindroma2(String str)
{
String a="";
for(int i=str.length()-1; i>=0; i--)
a+=str.charAt(i);

if( str.compareTo(a)==0)
return true;
return false;
}

public static String[] reverse(String[] x)
{
String[] y=new String[x.length];
int j=0;
for(int i=x.length-1; i>=0; i--)
{
y[j]=x[i];
j++;
}
return y;
}

public static void main (String args[]) throws Exception
{
BufferedWriter file1=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("input.doc")));
BufferedReader file2=new BufferedReader(new InputStreamReader(new FileInputStream("input.doc")));

BufferedReader file4=new BufferedReader(new InputStreamReader(new FileInputStream("input.doc")));
BufferedWriter file3=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("output.doc")));

BufferedReader file6=new BufferedReader(new InputStreamReader(new FileInputStream("input.doc")));
BufferedWriter file5=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("output2.doc")));




Scanner sc=new Scanner(System.in); //INSERIRE INPUT DA TASTIERA

//INSERIMENTO DA TASTIERA IN OGNI LINEA
for(int i=0; i<3; i++)
file1.write(sc.nextLine()+"\n");
file1.close();
//--------------------------FINE---------------------//

//---------------CONTEGGIO LINEE DEL FILE SCRITTO--------------//
int line=0;
while(file2.readLine()!=null)
line++;
System.out.println(line);
//-------------------------------------FINE--------------------------------//

//-------------------------------PUNTO 2---------------------------------//
String str="";
while((str=file4.readLine())!=null) //assegnamo alla stringa la readLine() perchè se così non fosse stato, la readLine() sarebbe passata alla riga successiva.
{
//-------------------CONTEGGIO N° DI TOKEN----(nella stringa)-----------//
int cnt=0;
for(int i=0; i<str.length(); i++)
if(str.charAt(i)==' ')
cnt++;
//--------------------------------------FINE--------------------------------------//

// QUESTO PUNTO CREA UN FILE CONTENENTE LE STRINGHE NON PALINDROME
int a=0;
String[] array=reverse(str.split(" "));
for(int i=0; i<array.length; i++)
if(palindroma2(array[i])==false) //CONTROLLA SE OGNI PAROLA NON è PALINDROMA, SE NON LO è LA CONTIAMO
a++;
if(a==array.length) //SE IL CONTATORE CHE ABBIAMO INCREMENTATO RAGGIUNGE LA LUNGHEZZA DELL'ARRAY SIGNIFICA CHE QUELLA STRINGA NON CONTIENE PAROLE PALINDROME
{
str="";
for(int k=0; k<array.length;  k++) // L'ARRAY SU CUI LAVORIAMO E' GIA' STATO INVERTITO, QUINDI RIASSEGNAMO AD str LA STRINGA REVERSATA
str+=array[k]+" ";
file3.write(str+"\n"); // E QUINDI LA SCRIVIAMO NELLO STICCIO CAGATO
}
//------------------------------FINE PUNTO 2-------------------------------//


//-------------------------------PUNTO 3---------------------------------//
String[] array2=new String[line];
String str2="";
int k=0;
while((str2=file6.readLine())!=null)
{
array2[k]=str2;
k++;
}
String[]out=array2;
for(int h=out.length-1; h>=0; h--)
file5.write(array2[h]+"\n");
}


file2.close();
file4.close();
file3.close();
file5.close();
file6.close();
}
}
grazie in anticipo
Logged

Una macchina è in grado di lavorare come cinquanta uomini comuni, ma nessuna macchina può svolgere il lavoro di un uomo straordinario.
Pages: [1]   Go Up
Print
Jump to: