Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Programma stampa stringhe

    Salve ragazzi, non riesco a trovare l errore di un programmino sempolice in Java(non ci programma quasi mai) che stampa in output una stringa che elimina 2 caratteri consecutivi uguali
    codice:
    import java.io.*;
    import java.lang.String;
    
    public class StripDuplicates{
        public static void main(String args[]){
          String str = "mamma";
          String ris ="";
          for(int i=0; i < str.length();i++){
              if(str.charAt(i)!=str.charAt(i+1)) ris= str.substring(i,1);
          }
          System.out.println("Output:" + ris);
        }
    
    }
    L errore che mi viene riportato è questo:Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -2 at java.lang.String.substring(Unknown Source)
    at StripDuplicates.main(StripDuplicates.java:9)



    Dove è il problema?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da danielebarisano Visualizza il messaggio
    Salve ragazzi, non riesco a trovare l errore di un programmino sempolice in Java(non ci programma quasi mai) che stampa in output una stringa che elimina 2 caratteri consecutivi uguali
    Ci sono 2 errori "tecnici" e 1 concettuale:

    - Se la stringa è lunga 5, allora "i" va correttamente da 0 a 4. Solo che all'ultimo indice valido (4) fai str.charAt(i+1) e va "fuori".
    - Il secondo parametro di substring è il endIndex ed è esclusivo, non è la lunghezza da prendere.

    L'errore concettuale: per eliminare 2 caratteri consecutivi, non lo fai certo con quel ris= str.substring(i,1)

    Prova a ragionare meglio e ri-scrivilo proprio. Magari sfrutta la concatenazione delle stringhe per accodare un carattere per volta.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

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 © 2024 vBulletin Solutions, Inc. All rights reserved.