Originariamente inviato da nadiiia86
Ma la differenza è solo Coca Cola 0.33L,1.5€ xke prende anche Moretti Rossa 0.50,3.0€ ????????
Semplicemente è una questione concettuale a cui evidentemente non hai pensato.
Tu fai una scansione per la lunghezza di vekkio e usi quindi 1 solo indice. Il tuo codice non è così "smart" da gestire tutti i possibili casi. Che succederebbe se ad esempio nella nuova stringa ci fosse qualcosa in più al fondo rispetto alla vecchia?? Non lo "raggiungeresti" mai visto che usi solo la lunghezza di vekkio!! E non è nemmeno in grado di "risincronizzarsi" per trovare una nuova uguaglianza dopo una differenza. Andando con 1 indice solo, finché è tutto uguale ... ok. Alla prima differenza ... tutto il resto, come nel caso sopra lo vede "diverso".

Insomma .... è questione di "ragionare" meglio sull'algoritmo. E il try/catch che hai messo ti "salva" perché essendo la nuova stringa più corta viene lanciato ad un certo punto IndexOutOfBoundsException. Ma in ogni caso è solo un barbatrucco inutile poiché è l'intero algoritmo che "fa acqua" a monte a livello concettuale.