Ciao a tutti, sono novello nella programmazione Java e in questi giorni mi sto esercitando in diversi esercizi che ho trovato in rete. Oggi mi sono imbattuto in un che mi sta dando non pochi problemi.
Riporto di seguito il testo dell'esercizio:
Ho quindi scritto il codice per fare questo, ma il programma non funziona e mi genera un errore che non riesco a trovare.codice:Scrivere un metodo filtra che, data una stringa A e una stringa B, restituisce una nuova stringa ottenuta da B scartando i caratteri che appaiono anche in A. Ad esempio, se B="totti" e A="st" il risultato deve essere: "oi".
Di seguito il codice:
Riporto anche l'errore che mi genera:codice:package test; import javax.swing.JOptionPane; public class Filter { String string1; String string2; Filter() { this.string1 = JOptionPane.showInputDialog("Inserie la prima stringa"); this.string2 = JOptionPane.showInputDialog("Inserie la seconda stringa"); } public void calculation() { int l1 = this.string1.length(); int l2 = this.string2.length(); for(int i=0; i<l1; i++) { char c1 = this.string1.charAt(i); for(int j=0; j<l2; j++) { char c2 = this.string2.charAt(j); if(c1==c2 & j==0) { this.string2 = this.string2.substring(1); } if(c1==c2 & j>0) { this.string2 = this.string2.substring(0,j)+this.string2.substring(j+1, this.string2.length()); } } } } public void print() { System.out.println("Il risultato del processo di filtramento e': "+string2); } public static void main(String args[]) { Filter f = new Filter(); f.calculation(); f.print(); } }
Mi rivolgo quindi a voi per un aiuto.codice:Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 3 at java.lang.String.charAt(String.java:686) at test.Filter.calculation(Filter.java:21) at test.Filter.main(Filter.java:39) Java Result: 1
Grazie

Rispondi quotando