Visualizzazione dei risultati da 1 a 9 su 9

Discussione: metodo boolean

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    8

    metodo boolean

    ciao, sto cercando di fare un metodo che mi ritorna vero se in un array di caratteri ci sono 3 caratteri specifici, falso altrimenti
    io ho scritto così ma ovviamente è sagliato perchè in questo modo mi ritorna sempre falso, potete aiutarmi per favore?

    codice:
    public boolean presenza3caratteri(char a, char b, char c)
    	{	for (int i=0; i<18; i++)
    		{	if ( caratteri[i]=='a'&&caratteri[i+1]=='b'&&caratteri[i+2]=='c') return true;	
    		return false;
    		}
    	}

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613

    Re: metodo boolean

    Originariamente inviato da hachi85
    ciao, sto cercando di fare un metodo che mi ritorna vero se in un array di caratteri ci sono 3 caratteri specifici, falso altrimenti
    io ho scritto così ma ovviamente è sagliato perchè in questo modo mi ritorna sempre falso, potete aiutarmi per favore?

    codice:
    public boolean presenza3caratteri(char a, char b, char c)
    	{	for (int i=0; i<18; i++)
    		{	if ( caratteri[i]=='a'&&caratteri[i+1]=='b'&&caratteri[i+2]=='c') return true;	
    		return false;
    		}
    	}
    Perché i<18? La lunghezza dell'array è sempre la stessa? Se si qual è?
    Inoltre quello che stai controllando tu è se quei tre caratteri ci sono e sono uno dopo l'altro, condizione non necessaria (da quello che hai scritto tu).
    E poi hai messo il return false dentro al for, che anche se tutto il resto fosse giusto andrebbe fuori.

    Un modo abbastanza semplice sarebbe inizializzare tre variabili booleane a falso, una per ogni carattere, e scorrendo tutto l'array ad ogni iterazione guardi se il carattere "i" è uguale ad uno dei tre: in caso positivo, setti la relativa variabile booleana a true.
    Alla fine ritorni true se e solo se son tutte vere.

  3. #3

    Re: metodo boolean

    Originariamente inviato da hachi85
    ciao, sto cercando di fare un metodo che mi ritorna vero se in un array di caratteri ci sono 3 caratteri specifici, falso altrimenti
    io ho scritto così ma ovviamente è sagliato perchè in questo modo mi ritorna sempre falso, potete aiutarmi per favore?

    codice:
    public boolean presenza3caratteri(char a, char b, char c)
    	{	for (int i=0; i<18; i++)
    		{	if ( caratteri[i]=='a'&&caratteri[i+1]=='b'&&caratteri[i+2]=='c') return true;	
    		return false;
    		}
    	}
    Puoi mappare i tre caratteri con valori booleani, in modo tale da non complicarti troppo le cose.

    Ad esempio puoi usare una istanza di java.util.HashMap

    Poi, a meno di casi particolari, nella condizione del for dovresti sostituire 18 con caratteri.length

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    una mappa per 3 caratteri mi sembra sparare ad una mosca con un cannone!!
    Il dispendio che hai nel mettere su la mappa, wrappare i tipi primitivi, inserirli e controllare ti porta a dire che un array di 3 booleani che la soluzione di kaamos è la più indicata.

    Poi se il discorso deve essere generico (e quindi si può parlare anche di 100 caratteri), passare alla mappa inizia ad avere senso!!!
    RTFM Read That F*** Manual!!!

  5. #5
    Originariamente inviato da valia
    una mappa per 3 caratteri mi sembra sparare ad una mosca con un cannone!!
    Il dispendio che hai nel mettere su la mappa, wrappare i tipi primitivi, inserirli e controllare ti porta a dire che un array di 3 booleani che la soluzione di kaamos è la più indicata.

    Poi se il discorso deve essere generico (e quindi si può parlare anche di 100 caratteri), passare alla mappa inizia ad avere senso!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    forse no nci siamo capiti, io ti ho visto consigliare una mappa per implementare il concetto di presenza di 3 caratteri in una stringa, soluzione che trovo pesante nel contesto numero caratteri = 3, valida in generale
    RTFM Read That F*** Manual!!!

  7. #7
    Originariamente inviato da valia
    forse no nci siamo capiti, io ti ho visto consigliare una mappa per implementare il concetto di presenza di 3 caratteri in una stringa, soluzione che trovo pesante nel contesto numero caratteri = 3, valida in generale
    E' noto che a te piace giudicare e trovare il pelo nell'uovo, ma questa volta ti è andata male.

    Essendo veramente precisi sul discorso della "pesantezza" che hai sollevato:
    per quanto riguarda l'aspetto temporale, si può parlare di una differenza di qualche millesimo di secondo tra le due implementazioni, e sicuramente il conto potresti tenerlo con le dita della mano, perciò l'istanziazione e l'autoboxing "graverebbero" fino ad un certo punto, ammesso che lo facciano.
    La stessa cosa vale in termini di spazio.
    Inoltre, credo che si tratti di un esercizio che sicuramente mira a valutare altri aspetti.

    Per quanto riguarda gli altri aspetti:
    le due soluzioni concettualmente sono identiche, in quanto si basano sulla logica del mapping, ma con le seguenti differenze:
    - la prima fa uso di un mapping implicito, la seconda di uno esplicito;
    - la seconda soluzione è generale, perchè segue un principio;
    - la seconda soluzione offre all'utente hachi85 uno spunto per conoscere una delle implementazioni di una tra le strutture fondamentali in Java.

  8. #8
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Boh, sarà anche puntigliosa, ma visto che ancora non ha ancora risposto sembra anche poco permalosa...

    Spesso gli utenti che chiedono aiuto sono studenti universitari alle prese con i loro esercizi, l'utilità della soluzione che viene loro fornita dovrebbe essere valutata in funzione del loro programma di studio, che non è possibile conoscere e che da quanto ho visto può discostarsi anche di molto da quello che consideriamo ottimale...
    A mio modesto parere, parlare di HashTable a una persona che sta imparando a usare gli array è abbastanza privo utilità in generale, potenzialmente utile in qualche caso, potenzialmente controproducente per chi gli oggetti ancora non li ha digeriti.

    Io preferisco usare strutture dati più "ricche" se c'è un vantaggio a livello di scrittura del codice (numero di righe e/o leggibilità), altrimenti punterei sempre alla struttura dati più semplice tra quelle che ha senso utilizzare. E penso che anche il criterio dell'usare con coscienza le risorse della macchina sia un ottimo "spunto di conoscenza".

    Poi la HashTable è certamente un oggetto di cui suggerirne la conoscenza e a Vincenzo va riconosciuto di esserne un ottimo vangelizzatore.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    @Pastore
    non avevo voluto rispondere qui per evitare OT, ma avevo mandato un mex privato alla persona. Mi è parso più indicato.

    Hai espresso quello che penso in modo che io non riesco mai a dire, grazie. Tutto va rapportato alla situazione in cui ci si trova, non c'è una soluzione buona per tutto.
    RTFM Read That F*** Manual!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.