Hi, meine Aufgabe ist folgender:
"In einer main-Methode wird die Zahl als int von der Konsole gelesen. Dann wird in einer Methode splitNumber die Zerlegung durchgeführt und das Ergebnis als String an main zurückgeliefert. Dort wird das Ergebnis dann ausgegeben. In splitNumber findet keine Ein- oder Ausgabe statt! Beim Zerlegen der Zahl soll nach jedem ausgegebenen Zeichen zur Trennung ein Komma eingefügt werden. Führende Nullen sind ebenso zu unterdrücken wie ein abschließendes Komma. Die Zahl 0 ist als positive Zahl zu behandeln. Beispiel: splitNumber(246) liefert “+,2,4,6” als Ergebnis."
Mein bisheriger Code:
Ich weiß, da fehlt noch einiges und so, aber bin absoluter Neuanfänger, daher bitte nicht so streng sein
Wenn ich jetzt z.B. 246 eingebe, kommt das als Ergebnis raus: +,0 ,0 ,0 ,0 ,0 ,0 ,0 ,2 ,4 ,6
Meine Fragen:
1. Wie kann ich die führenden Nullen entfernen?
2. Und bei negativen Zahlen muss ich ja eig nur das "+" in ein "-" umwandeln, denke mal mit einer If-Anweisung?
3. Und das größte Problem ist bei großen Zahlen, also wenn es mehr als 10 Ziffern hat, da ich jetzt nicht bis ziffer50 oder ziffer100 schreiben will, welche Schleife sollte ich da am besten benutzen?
Leider kann ich noch keine krassen Konstrukte oder so verwenden, haben bisher nur 4 Arten von Schleifen, Methoden, Strings etc. durchgenommen.
Aber alleine ein Paar Denkanstöße würden mir viel weiterhelfen ^^
"In einer main-Methode wird die Zahl als int von der Konsole gelesen. Dann wird in einer Methode splitNumber die Zerlegung durchgeführt und das Ergebnis als String an main zurückgeliefert. Dort wird das Ergebnis dann ausgegeben. In splitNumber findet keine Ein- oder Ausgabe statt! Beim Zerlegen der Zahl soll nach jedem ausgegebenen Zeichen zur Trennung ein Komma eingefügt werden. Führende Nullen sind ebenso zu unterdrücken wie ein abschließendes Komma. Die Zahl 0 ist als positive Zahl zu behandeln. Beispiel: splitNumber(246) liefert “+,2,4,6” als Ergebnis."
Mein bisheriger Code:
Java:
public class NS {
public static void main(String[] args) {
println("Bitte geben Sie eine ganze Zahl ein");
int ganzeZahl = readInt();
println(splitNumber(ganzeZahl));
}
public static String splitNumber(int ganzeZahl) {
int ziffer1 = ganzeZahl % 10;
int ziffer2 = ganzeZahl % 100 / 10;
int ziffer3 = ganzeZahl % 1000 / 100;
int ziffer4 = ganzeZahl % 10000 / 1000;
int ziffer5 = ganzeZahl % 100000 / 10000;
int ziffer6 = ganzeZahl % 1000000 / 100000;
int ziffer7 = ganzeZahl % 10000000 / 1000000;
int ziffer8 = ganzeZahl % 100000000 / 10000000;
int ziffer9 = ganzeZahl % 1000000000 / 100000000;
int ziffer10 = ganzeZahl % 1000000000 / 1000000000;
return "+" + "," + ziffer10 + " " + "," + ziffer9 + " " + "," + ziffer8 + " " + "," + ziffer7 + " " + ","
+ ziffer6 + " " + "," + ziffer5 + " " + "," + ziffer4 + " " + "," + ziffer3 + " " + "," + ziffer2 + " "
+ "," + ziffer1;
}
}
Ich weiß, da fehlt noch einiges und so, aber bin absoluter Neuanfänger, daher bitte nicht so streng sein
Wenn ich jetzt z.B. 246 eingebe, kommt das als Ergebnis raus: +,0 ,0 ,0 ,0 ,0 ,0 ,0 ,2 ,4 ,6
Meine Fragen:
1. Wie kann ich die führenden Nullen entfernen?
2. Und bei negativen Zahlen muss ich ja eig nur das "+" in ein "-" umwandeln, denke mal mit einer If-Anweisung?
3. Und das größte Problem ist bei großen Zahlen, also wenn es mehr als 10 Ziffern hat, da ich jetzt nicht bis ziffer50 oder ziffer100 schreiben will, welche Schleife sollte ich da am besten benutzen?
Leider kann ich noch keine krassen Konstrukte oder so verwenden, haben bisher nur 4 Arten von Schleifen, Methoden, Strings etc. durchgenommen.
Aber alleine ein Paar Denkanstöße würden mir viel weiterhelfen ^^