Leerzeichen zu string hinzufügen, um eine gerade zahl zu erhalten

levinw98

Mitglied
Hallo,

nachdem ich jetzt endlich den link zum Thema erstellen gefunden habe, hier meine Frage :

Ich habe einen String mit einem Wort, und einen String mit einem Text. Ich zähle von beidem die Zeichen, teile die Anzahl der Zeichen des Textes durch die Anzahl der Zeichen des Wortes und möchte nun, dass eine gerade Zahl herauskommt. Falls das nicht geschieht würde ich gerne ein Leerzeichen an den String anfügen. Ich habe das jetzt so gelöst:
Java:
...
private static void code1() {

		bpz = textlength / l1;

		if (bpz - (int) bpz == 0) {

		} else {

			while (textlength / l1 - (int) textlength / l1 != 0) {

				textlength = textlength + 1;
				zbst++;
			}

			switch (zbst) {
			case 1:
				strtexteingabe = strtexteingabe + " ";
				break;
			case 2:
				strtexteingabe = strtexteingabe + "  ";
				break;
			case 3:
				strtexteingabe = strtexteingabe + "   ";
				break;
			case 4:
				strtexteingabe = strtexteingabe + "    ";
				break;
			case 5:
				strtexteingabe = strtexteingabe + "     ";
				break;
			case 6:
				strtexteingabe = strtexteingabe + "      ";
				break;
			case 7:
				strtexteingabe = strtexteingabe + "       ";
				break;
			case 8:
				strtexteingabe = strtexteingabe + "        ";
				break;
			case 9:
				strtexteingabe = strtexteingabe + "         ";
				break;
			case 10:
				strtexteingabe = strtexteingabe + "          ";
				break;
			case 11:
				strtexteingabe = strtexteingabe + "           ";
				break;
			case 12:
				strtexteingabe = strtexteingabe + "            ";
				break;
			case 13:
				strtexteingabe = strtexteingabe + "             ";
				break;
			case 14:
				strtexteingabe = strtexteingabe + "              ";
				break;
			case 15:
				strtexteingabe = strtexteingabe + "               ";
				break;
			case 16:
				strtexteingabe = strtexteingabe + "                ";
				break;
			case 17:
				strtexteingabe = strtexteingabe + "                 ";
				break;
			case 18:
				strtexteingabe = strtexteingabe + "                  ";
				break;
			case 19:
				strtexteingabe = strtexteingabe + "                   ";
				break;
			}
}
}
l1 ist die länge meines Wortes und textlength die Länge meines Textes. strtexteingabe ist mein Text.

Ich hoffe ich bin hier richtig und mir kann jemand helfen 🙁

levinw98
 
oh entschuldigung 😳

als default habe ich in meinem switch case eine error message stehen. diese wird komischerweise immer aufgerufen

also so...:
Java:
...
default:
				Object[] options = { "OK" };
				JOptionPane.showOptionDialog(null, "Fehler!", "ERROR",
						JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE,
						null, options, options[0]);
				break;
}

Edit: das muss heißen, dass entweder zbt 0 oder über 19(eigentlich nicht möglich?) ist. Warum?
 
Zuletzt bearbeitet:
Ich hätte jetzt erwartet, das du Beispiele nennst und keinen Schmutzcode!

Wort:String-->Ausgabe
"turtle":"text"-->"XXXXXX" wobei X ein Leerzeichen sein soll
"turtle":"t"-->"XX" wobei X ein Leerzeichen sein soll
 
"MeinText mal zum test" :"strtexteingabe" --> "MeinText mal zum testXX" (X sollen leerzeichen sein)
Meinem string sollen so lange leerzeichen am ende hinzugefügt werden, bis die textlänge des strings (string.length()) durch eine bestimmte zahl (string2.length()) ohne rest geteilt werden kann.

Meine denkweisen sind meist etwas kompliziert aber ich hoffe ich konnte dir helfen zu verstehen was ich will 🙁
 
Modulo ist das Stichwort. Der Rest ist dann die Anzahl an Leerzeichen die du hinzufügen musst um eine Division ohne Rest zu garantieren.

Java:
String string = "Hallo";
String string2 = "Hi";
				
int spaces = string.length() % string2.length();
				
for(int i = 0; i < spaces; i++) {
	string += " ";
}
				
System.out.println(string + ";");
 

Zurück
Oben