Pages: [1]   Go Down
Print
Author Topic: Es.arraydistringhe  (Read 565 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Meluccio10
Apprendista Forumista
**
Offline Offline

Posts: 108


« on: 18-02-2011, 18:23:10 »

Sapete dirmi dove sbaglio??? testate grazie.....
Code:
/*
Scrivere un metodo che prenda come parametri formali due array di stringhe ed un intero N e
restituisca in output un valore booleano che indichi la presenza di due stringhe uguali di lunghezza
maggiore di N nei differenti vettori in input.
*/
import javax.swing.*;
public class Es7melo
{
public static boolean metodo(String []A, String []B,int N)
{
for(int i=0;i<A.length;i++)
{
for(int j=0;j<B.length;j++)
{
if(N<A[i].length && N<B[j].length)
else if (A[i].length()==B[j].length()))

return true;

}
}
return false;
}
public static void main(String[]args)
{
int N=IntegerparseInt(JOptionPane.showInputDialog("Dai un valore ad N"));
String A[]={"ciao ciao","meddina","loso"};
String B[]={"melooo","lelola"};
System.out.println(metodo(A,B,N));
}
}
[\CODE]
Logged
StephCT
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 417



« Reply #1 on: 18-02-2011, 21:25:32 »

scrivere N<A[i ].length nn ha senso, nn hai di fronte una matrice, dovresti mettere al max N<A[i ].length() cioè il metodo che ti restituisce la lunghezza della stringa. e le due stringhe nn devono essere uguali, suppongo, nella lunghezza ma nel contenuto.quindi il codice dovrebbe diventare qualcosa del tipo:

Code:
public static boolean metodo(String[] A ,String[] B ,int N)
{
boolean trovate=false;
for(int i=0;i<A.length && !trovate;i++)
if(A[i].length()>N)
for(int j=0;j<B.length && !trovate;j++)
{
boolean diverse=false;
if(B[j].length()>N && A[i].length()==B[j].length())
{
for(int x=0;x<A[i].length() && !diverse;x++)
if(A[i].charAt(x)!=B[j].charAt(x))
diverse=true;
if(!diverse)
trovate=true;
}
}
return trovate;
}

ti spiego il procedimento che ho adottato: prendi la prima parola, vedi se la sua lunghezza è maggiore di N, se è vera vai avanti altrimenti cambi parola nel primo array stesso. andando avanti prendi le parole nel secondo array e controlli anche li se la lunghezza è maggiore di N. per essere uguali due parole devono avere stessa lunghezza quindi fare anche quel controllo per assicurarsi di operare bene. quindi comincia il ciclo per confrontare le due parole, se sono uguali, esce da tutti i cicli e ritorna vero, altrimenti continua a provare dei confronti. potresti anche usare il procedimento del controllare le due parole con un contatore che aumenta ogni volta che trova due caratteri uguali e se alla fine è uguale alla lunghezza delle parole allora le hai trovate...
Logged

"Che la Forza sia con Te"
Pages: [1]   Go Up
Print
Jump to: