|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2006
Città: London
Messaggi: 5380
|
[JAVA] Come fare due return?
Ciao a tutti. Io ho questo semplice programma che in un array di caratteri trova la sequenza più lunga
Codice:
public class Sequenza{ public static void main(String[] args){ char[] array ={'a','b','c','c','f','f','z','z','z','z','b','b','b','b','b'}; System.out.println("Array: "); for(int i=0;i<array.length;i++) System.out.print(array[i]+" "); System.out.println(); cercaChar(array); } public static void cercaChar(char[] a){ int n=a.length; int cmax=1,cont=1; char c=a[0],com=a[0]; for(int i=1;i<n;i++){ if(a[i]==com && i!=a.length-1) cont++; else if(a[i]==com && i==a.length-1) { //nel caso fossi arrivato alla fine dell'array, così posso memorizzare l'ultima sequenza cont++; if(cont>cmax){ cmax=cont; c=com; } } else{ if(cont>cmax){ cmax=cont; c=com; } com=a[i]; cont=1; } // fine else } //fine for System.out.println("Lettera della sequenza piu' lunga: "+c); System.out.println("Lunghezza sequenza: "+cmax); } }
__________________
www.marcosero.com
about.me ● Trattative [29] ![]() "Computer science is no more about computers than astronomy is about telescopes." Edsger Dijkstra. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Non andrò a sindacare sul fatto che stai usando il Java come un linguaggio procedurale ma quella funzione non puoi semplicemente farla diventare due funzioni? E' bella lunga
![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Devi fare due metodi, oppure un solo metodo con due variabili globali e modificarle facendo side effect
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Jan 2008
Città: roma
Messaggi: 296
|
non puoi ritornare 2 rislutati a meno che nn li wrappi in un hashmap, o un vettore ... ma la cosa piu "elegante" che mi viene in mente e creare un classe con 2 campi carrattere e lunghezzaSequenza e fai solo il get di questi metodi , e l'array lo passi come parametro al costruttore , in modo che chi crea un istanza di quella classe deve x forza inizializzarla correttamente
Codice:
public class ProvaSequenza { public static void main(String ... c){ char [] xd = null; Sequenza seq = Sequenza.cercaChar(xd); seq.getCarrattere(); seq.getLunghezzaSequenza(); } } public class Sequenza{ private String carrattere; private Integer lunghezzaSequenza ; private Sequenza (){} public static Sequenza cercaChar(char [] a){ Sequenza seq = new Sequenza(); // lancia navicella // setta carattere della sequenza più lunga sia quanto è lunga la sequenza nelle rispettive variabili return seq; } public String getCarrattere{ return carrattere; } public Integer getLunghezzaSequenza(){ return lunghezzaSequenza; } } |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:23.