ich habe ein Programm geschrieben welches beispielsweise eine Zahl 375 zerlegt in 3,7,5 führende nullen wegläst und gegebenfalls die vorzeichen mit einbindet also z.b. ein "-" , nur will mir das nicht mit dem "+" Zeichen gelingen und leider fehlt mir hier das wissen wie ich das mit anhängen kann. Also ich möchte quasie das dann [+,3,7,5] als ergebnis da steht. Hätte ich das ganze anders angehen müssen, und nicht mit "split()" arbeiten sollen? Im internet habe ich leider keine richtigen alternativen gefunden die ich verstanden habe um einen String noch anders zu zerlegen.
Mein Code:
Code:
public static void main(String[] args) {
// Variables
int userNumber;
String[] splittedNumbers;
// User input and introduction
println("Please enter a Number to disassemble: ");
userNumber = readInt();
println("Your Number:" + userNumber);
splittedNumbers = splitNumber(userNumber);
println(Arrays.deepToString(splittedNumbers));
}
// Methods
public static String[] splitNumber(int numberToSplit) {
String numbers = String.valueOf(numberToSplit);
String[] splittedNumbers = numbers.split("|");
return splittedNumbers;
}
Und nebenbei wie kommt es eigentlich das ich bei Split um die zahlen mit "kommas" zu trennen diesen "|" strich benutzen muss und nicht einfach ein "," nehmen kann? Hat ne weile gedauert bis ich das gefunden hatte
Du nutzt die Methode String.split und die erwartet einen regulären Ausdruck. Das Komma ist nur in der Ausgabe bei Arrays.deepToString und die kommen sonst nirgends vor.
Und nebenbei wie kommt es eigentlich das ich bei Split um die zahlen mit "kommas" zu trennen diesen "|" strich benutzen muss und nicht einfach ein "," nehmen kann?
Split erwartet als Argument einen regulären Ausdruck für die Stelle, an der gesplittet werden soll. Das "|" ist einfach ein "oder" - es wird also immer gesplittet - das "," wäre ein Komma.
Ich habe es jetzt einfach ganz "stumpf" gelöst indem ich in meiner main das gesplittete Array übergeben habe, dann abgefragt ob der userInput größer null ist -> wenn ja habe ich einer variable die länge des Arrays gegeben + 1 für das "+" Zeichen, und dann ein neues Array mit dieser größe deklariert, diesem dann im index 0 das "+" Zeichen geben und die restlichen stellen mit den werten des alten Arrays befüllt. Hat funktioniert
Vielen Dank nochmal für eure antworten.
Beste Grüße
Wenn es bei Dir auch um diese Taschenrechneraufgabe geht, um die es im Forum schon mind. zweimal ging: da brauchst Du den ganzen Aufwand nicht, weil Du die Werte bereits einzeln als Parameter übergeben bekommst
EDIT: Vergiss es, habe gerade nochmal deinen Eingangspost gelesen. Die Aufgabe ist eine ganz andere.