Hallo zusammen,
ich habe ein kleines Programm welches rückwärts die Stellen einer Zahl als Ziffer ausgibt.
Jedoch wirft es einen Fehler aus, den ich auch verstehe. Es liegt daran, dass ein Index nicht negativ werden kann (logischerweise). Nur wie bekomme ich es hin, dass das Programm an dieser Stelle einfach stoppt? Habe schon allesmögliche (break, if Prüfungen ob Wert kleiner Null ect.) probiert, nur nichts hilft.
konkret geht es um die Zeile: j = Character.digit(number.charAt(i), 10); wenn ich schaffe hier das kleiner null abzufangen wäre alles perfekt. Wahrscheinlich bin ich wieder zu dumm zum googlen..
ich habe ein kleines Programm welches rückwärts die Stellen einer Zahl als Ziffer ausgibt.
Jedoch wirft es einen Fehler aus, den ich auch verstehe. Es liegt daran, dass ein Index nicht negativ werden kann (logischerweise). Nur wie bekomme ich es hin, dass das Programm an dieser Stelle einfach stoppt? Habe schon allesmögliche (break, if Prüfungen ob Wert kleiner Null ect.) probiert, nur nichts hilft.
Java:
package iotoolsimport;
import static Prog1Tools.IOTools.*;
public class Aufgabe4_28 {
public static void main(String[] args){
/*
Dieses Programm soll:
- positive Zahl einlesen (if Schleife falls negativ oder 0)
- Zerlegen der Zahl in die Ziffern
- Ausgabe der Ziffern in umgekehrter Reihenfolge als Text
- while Schleifen & switch Anweisungen
*/
int eingabe;
System.out.print("Geben Sie die Anzahl Zeilen ein = ");
eingabe = readInteger();
//Schleife um positive Zahlen zu prüfen
if (eingabe<=0){
System.out.println("Eingabe bitte grösser 0 wählen!");}
else {
//Schritt1: Länge der Zahl bestimmen
String eingabe_string;
eingabe_string = Integer.toString(eingabe);
int eingabe_länge = eingabe_string.length();
String number;
number = String.valueOf(eingabe);
for(int i = eingabe_string.length()-1; i < number.length(); i--) {
int j;
j = Character.digit(number.charAt(i), 10);
switch (j){
case 1:
System.out.print("eins ");
break;
case 2:
System.out.print("zwei ");
break;
case 3:
System.out.print("drei ");
break;
case 4:
System.out.print("vier ");
break;
case 5:
System.out.print("fünf ");
break;
case 6:
System.out.print("sechs ");
break;
case 7:
System.out.print("sieben ");
break;
case 8:
System.out.print("acht ");
break;
case 9:
System.out.print("neun ");
break;
}
}
}
}
}
}
konkret geht es um die Zeile: j = Character.digit(number.charAt(i), 10); wenn ich schaffe hier das kleiner null abzufangen wäre alles perfekt. Wahrscheinlich bin ich wieder zu dumm zum googlen..