Vettori

di Anonimizzato22920 il
6 risposte
Come faccio a fare la ricerca di un elemento in un vettoere di caratteri?

6 Risposte

  • Un elemento di che tipo? Per vettore di caratteri intendi una sequenza di caratteri terminata da NULL?

    Hai provato a buttar giù del codice tuo da cui partire?
  • Scusa se ti ho risposto in ritardo,il vet e di caratteri,il fatto e che mi ritorna sempre -1 (ovviamente perche ce l ho messo)ma non capisco poiche poi mi da errore su return i.
    public int ricerca (int a) {
    for (int i=0; i<v.length; i++) {
    if (v == a)
    return i;
    }
    return -1;
    }
  • 
    public int ricerca (int a) {
            for (int i=0; i<v.length; i++) {
            if (v[i] == a)
            return i;
        }
           return -1;
        }
    qui si ved che stai passando un intero "a" e stai confrontando v (che dovrebbe essere un char), con un numero. Probabilmente devi cambiare "a".

    Comunque in genere se hai questo tipo di problemi ti conviene usare un debugger o mettere dei log che ti facciano vedere in un certo momento i valori delle due variabili che stai confrontando.

    PS: quando posti del codice, ti conviene usare il tag code che lo rende più leggibile. Inoltre, visto che esistono le classi vector e arrayList oltre ad altre, meglio parlare di array e non di vettore, giusto per non far venidere il dubbio a chi ti legge che tu stia usando un oggetto più complesso.
  • Scusami ho fatto un errore volevo dire che il vettore e di interi.il prblema e che non sto capendo se sto sbagliando il metodo o ce un errore,sostanzialmente il mio problema e cercare un elemnto nel vettore .lei che mi consiglierebbe di fare?(log che significa?)
  • groove ha scritto:


    public int ricerca (int a) {
        for (int i=0; i<v.length; i++) {
            if (v[i] == a)
                return i;
        }
        return -1;
    }
    Se v è un array int[] (lo hai sicuramente come variabile "di istanza") e vuoi cercare il valore a (parametro) nell'array per restituire l'indice se il valore è trovato (-1 = non trovato), allora il codice è CORRETTO.
  • groove ha scritto:


    Scusami ho fatto un errore volevo dire che il vettore e di interi.il prblema e che non sto capendo se sto sbagliando il metodo o ce un errore,sostanzialmente il mio problema e cercare un elemnto nel vettore .lei che mi consiglierebbe di fare?(log che significa?)
    Concordo con andbin sul fatto che in caso di interi il codice sia corretto.

    Per log intendo qualcosa del tipo
    System.out.printline("v[i] " + v[i] + " a "+ a ); 
    messo dentro il ciclo for, così ti stampa come output di eleborazione il valore delle due variabili ad ogni iterazione, così capisci il motivo per cui non lo trova.
Devi accedere o registrarti per scrivere nel forum
6 risposte