Sbagli dove fai:Originariamente inviato da djmary
Quando lo eseguo però, se digito una stringa vuota mi dà:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:686)
at es3.main(es3.java:12)
Cosa sbaglio?![]()
stai cercando di prendere il primo di carattere di una stringa vuota , stringa che non ha caratteri , quindi viene lanciata l'eccezione..ti basta aggiungere un ulteriore controllo.codice:s.charAt(0);
Inoltre un suggerimento che ti do è quello di usare uno StringBuilder per creare la stringa (otterrai il suo contenuto al termine con il metodo "toString")..come saprai String è un oggetto immutabile quindi ad ogni concatenazione non fai altro che creare una nuova stringa mentre lo StringBuilder è l'elemento apposito per la costruzione di stringhe (salvo il caso di lavoro su più thread , non essendo "thread-safe" StringBuilder , in quel caso è meglio usare StringBuffer)
![]()

Rispondi quotando