Trovare un carattere uguale analizzando due stringhe

di il
19 risposte

Trovare un carattere uguale analizzando due stringhe

Ciao a tutti!!

Sono qua perchè voglio chiedervi una mano su un esercizio riscontrato.
L'esercizio in questione e':

Si realizzi un programma che definisce: il metodo cercaCarattere che accetta in ingresso due stringhe, confronta a uno a uno i caratteri delle due stringhe e restituire il primo carattere uguale trovato oppure restituire il carattere '*' se le due stringhe non hanno nemmeno un carattere uguale.
Poi avremo un metodo main che continua a leggere in input due stringhe e invoca il metodo cercaCarattere passandogli le stringhe inserite dall'utente, finche' il carattere restituito dal metodo è diverso dall'ultimo carattere della prima stringa.

Vi chiedo di aiutarmi a sviluppare il metodo cercaCarattere perchè il metodo main ho già in mente come farlo il problema è la realizzazione dell'altro.

Grazie in anticipo.

19 Risposte

  • Re: Trovare un carattere uguale analizzando due stringhe

    Andre_Flav ha scritto:


    il metodo cercaCarattere che accetta in ingresso due stringhe, confronta a uno a uno i caratteri delle due stringhe e restituire il primo carattere uguale trovato oppure restituire il carattere '*' se le due stringhe non hanno nemmeno un carattere uguale.
    Non l'hai precisato ma ... il carattere uguale si può trovare solo allo stesso indice nelle due stringhe ... o a due indici differenti?
  • Re: Trovare un carattere uguale analizzando due stringhe

    Ah si scusate si deve stare allo stesso indice
  • Re: Trovare un carattere uguale analizzando due stringhe

    Andre_Flav ha scritto:


    Ah si scusate si deve stare allo stesso indice
    Allora è più "banale" dell'altro scenario. Perché immaginando che le due stringhe possano essere di lunghezze diverse, basta prendere la lunghezza "min" e scorrere un indice su questa lunghezza (quindi ci saranno sempre caratteri da entrambe le stringhe). Se ad un indice il charAt() dà lo stesso carattere dalle due stringhe .... lo restituisci subito.
    Alla fine, non avendo trovato nulla prima, restituisci '*'.

    E' tutto qui ....
  • Re: Trovare un carattere uguale analizzando due stringhe

    Se invece non fosse dello stesso indice come si dovrebbe fare giusto per curiosità
  • Re: Trovare un carattere uguale analizzando due stringhe

    Andre_Flav ha scritto:


    Se invece non fosse dello stesso indice come si dovrebbe fare giusto per curiosità
    Doppio ciclo for "annidato", perché ciascun carattere della stringa A devi andare a cercarlo nella stringa B, potendo appunto essere ad un altro indice.
  • Re: Trovare un carattere uguale analizzando due stringhe

    Okey, ma quindi in termini di programma come si dovrebbe fare? Nel senso riusciresti a farmi un esempio
  • Re: Trovare un carattere uguale analizzando due stringhe

    Andre_Flav ha scritto:


    Okey, ma quindi in termini di programma come si dovrebbe fare? Nel senso riusciresti a farmi un esempio
    Serve:
    - determinare il minimo tra due lunghezze (delle stringhe), perché devi iterare avendo sempre caratteri da entrambe.
    - un ciclo for con indici su quella lunghezza "min"
    - usare charAt(indice) di String per ottenere i due caratteri e poi confrontarli

    Quali sono i dubbi?
  • Re: Trovare un carattere uguale analizzando due stringhe

    Non mi torna come confrontarli
  • Re: Trovare un carattere uguale analizzando due stringhe

    Andre_Flav ha scritto:


    Non mi torna come confrontarli
    Sono due char primitivi .....
    (come confronti due int? due long? appunto ..)
  • Re: Trovare un carattere uguale analizzando due stringhe

    No quello okey il mio pseudocodice e' cosi:
    String prova = "";

    if (prima.length() > seconda.length()) {

    for (int i = 0; i < seconda.length(); i++) {
    prova = prova + seconda.charAt(i);

    for (int j = 0; j < prova.lenght(); j++) {

    mi manca cosa inserire qua dentro poi faccio la stessa operazione per else if se dovesse essere più grande la prima e poi con else se dovessero
    essere uguali

    }
    }
  • Re: Trovare un carattere uguale analizzando due stringhe

    Andre_Flav ha scritto:


    String prova = "";
    
        if (prima.length() > seconda.length()) {
    
          for (int i = 0; i < seconda.length(); i++) {
            prova = prova + seconda.charAt(i);
    
            for (int j = 0; j < prova.lenght(); j++) {
    
              mi manca cosa inserire qua dentro poi faccio la stessa operazione per else if se dovesse essere più grande la prima e poi con else se dovessero 
              essere uguali
    
            }
          }
    No, mi spiace, non ha assolutamente senso!
  • Re: Trovare un carattere uguale analizzando due stringhe

    Lo so benissimo però non ho capito come fare
  • Re: Trovare un carattere uguale analizzando due stringhe

    Andre_Flav ha scritto:


    Lo so benissimo però non ho capito come fare
    public static char cercaCarattere(String str1, String str2) {
        int len = .......
        ....
    }
    1) Determini la lunghezza "minima". Come lo fai, con Math.min() oppure usando < o > e l'operatore condizionale .. non importa.
    2) Fai un ciclo for (UNO!! non due) con un indice che scorre quella lunghezza minima
    3) Per ciascun indice, usi charAt(indice) e confronti (anche direttamente, non servirebbero delle variabili) i due caratteri, se uguali, restitusci subito (quello, ovviamente).
    4) Alla fine .... '*'
  • Re: Trovare un carattere uguale analizzando due stringhe

    Okey penso di aver capito.
    Ultima cosa allora non devo fare un ciclo annidato?
Devi accedere o registrarti per scrivere nel forum
19 risposte