Quersumme

deni100

Aktives Mitglied
Code:
package yapmasunu;

public class YeniQuerSumme {

	private static Object[] args1;

	public static void main(String[] args) {
	
		String args1[]={"1","23","45","678"};
		System.out.println(args1.length);
		int quersumme =0;
		for (int i = 0;i<args1.length;i++){
			for (int j = 0;j<args1.length-1;j++){
				
				if (args1[i].charAt(j)>='0'&&args1[i].charAt(j)<='9'){
					
					quersumme +=args1[i].charAt(j)-'0';
					
				}else{
					
					throw new NumberFormatException ("keine Zahl");
					
				}
			}
			
			System.out.println ("Die Quersumme beträgt "+quersumme);
		}

	}

}

Er gibt mir ein IndexOutOfBoundException wo ist denn mein Fehler?
 
R

ricardo1885

Gast
"IndexOutOfBoundException" beduetet, dass du auf ein Element innerhalb eines Arrays zugreifst, das es nicht gibt. Dieser Fehler kann eigentlich nur an den Grenzen des Arrays auftreten.

Am Besten debuggst du deinen Code mal und siehst dir dabei die Indexe für die Array-Elemente an und schaust, ob es diese wirklich gibt. Darüber wirst du den Fehler mit Sicherheit schnell finden.
 

Phash

Top Contributor
bei deinem da oben krieg ich auch IOOB Exceptions...

und da fällt mir auch der Fehler auf...

was ist denn das Char für Zahlen?
ASCII-Tabelle
hier findest du den Fehler :)

char 1 != zahl 1

des Weiteren finde ich es komisch, einen String als Char zu parsen und das zu berechnen... denke über nen Cast zu nem Int und dann RICHTIGEM Berechnen ist es besser... vor allem kannst du damit auch Ints berechnen - und musst nur alles andere zu nem int convertieren...
das heisst aber auch, dass du falsche Zahlen schon ausschliesst, bevor du halb durchgerechnet hast

Java:
        String args1[] = {"1", "23", "45", "678"};
       
        for (String element : args1) {
            try {
                
                  int quersumme = 0;
                  int zahl = Integer.parseInt(element);
           
                  while (zahl > 10){
                      quersumme += zahl %10;
                      zahl /= 10;
                   }
                   quersumme += zahl;
                   System.out.println("Quersumme: "  +quersumme);
            } catch (NumberFormatException e) {
                System.out.println("keine Zahl");
            }
        }
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben