Il consiglio che trovo più opportuno darTi è quello di organizzare le idee prima di codificare, per far ciò è bene leggere un pochino prima e studiarsi il codice fatto :
1 - "
isDigit" è un
metodo della classe Character, applicandolo direttamente avresti un errore di referenziazione;
2 - "
charAt()" è un metodo della classe String e quindi va richiamato da oggetti di tal genere;
3 - per eseguire la somma deve essere utilizzato un valore intero derivato dalla stringa letta, non i, che è un indice, un possibile modo è utilizzare il metodo "
parseInt()" della
classe Integer, dandogli in pasto la
sottostringa determinante il numero
con tali considerazioni, una versione funzionante del Tuo codice sarebbe :
Codice: Seleziona tutto
public class Sommaescrivi {
public static void main(String[] args) {
// TODO Auto-generated method stub
String stringa = "2,3,ciao,4";
int somma=0;
for(int i=0;i<stringa.length();i++){
if(Character.isDigit(stringa.charAt(i))) {
somma = somma + Integer.parseInt(stringa.substring(i,i+1));
System.out.println(stringa.substring(i,i+1)+ "+");
}
}
System.out.println("= " + somma);
}
}
(nota che non è necessario importare java.lang). Comunque anche tale metodologia non è corretta, infatti se un numero fosse composto di due cifre la somma sarebbe errata, infatti, posta la stringa come "12,3,ciao,4" l'output sarebbe:
e non 19. Il corretto approccio Ti è stato già suggerito in precedenza : utilizza il
metodo split() degli oggetti stringa e il metodo parseInt() della classe Integer (già indicato il link relativo) per computare correttamente le somme.