Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Guten Morgen,
ich möchte Ziffern vergrößern. Dafür habe ich eine Funktion geschrieben, die mir den ersten Eintrag rausholt damit ich ihn vergrößern kann. Ich komme an der Stelle nicht weiter, kann mir vielleicht jemand weiter helfen?
Einmal die Funktion dafür:
Java:
public String[] resizeEntry(String[] scaleFactor) {
List <String> listForData = new ArrayList<String>();
for (String line : scaleFactor){
listForData.add(line);
}
listForData.add(1,listForData.get(1));
System.out.print(listForData);
return listForData.toArray(new String[listForData.size()]);
}
Also ich schaffe es mitlerweile die vertikalen Striche zu verdoppeln. Ich habe mir jetzt den ersten und vorletzten Eintrag aus den Ziffern geholt, damit werden die vertikalen Striche vergrößern.
Java:
for (String line : scaleFactor){
listForData.add(line);
}
listForData.add(1,listForData.get(1));
listForData.add(4,listForData.get(4));
Jetzt ist das Problem noch da mit dem horizontalen Strichen
Also um es nochmal zu verdeutlichen, hier habe ich mir meine Ausgabe gebastelt. Wenn ich dort 1 eingebe kommt die normale Ziffer raus, wenn ich 2 eingebe wird sie doppelt so groß usw.
Java:
public String[] scale(String[] scaleFactor, int valueForScale) {
if (valueForScale == 1) {
String[] stringArray = new String[5];
for (int i = 0; i < stringArray.length; i++) {
System.out.println(scaleFactor[i]);
}
}else if (valueForScale == 2){
String [] scaleArray = doubleSize(scaleFactor);
String [] scaleArrayHorizontal = doubleSizeForHorizontal(scaleFactor);
for (int j = 0; j < scaleArray.length; j++ ){
System.out.println(scaleArray[j]);
}
}else if (valueForScale == 3){
String [] scaleArray = tripleSize(scaleFactor);
for (int x = 0; x < scaleArray.length; x++){
System.out.println(scaleArray[x]);
}
}
return scaleFactor;
}
scaleArrayHorizontal ist das Array für die horizontalen Striche, dass Problem ist wie ich beides zusammen fassen kann, also vertikale und horizontale vergrößerung
Keine Ahnung was hinter den einzelnen Methoden steckt.
Aber allgemein müssen die Zeilen 1, 3 und 5 um den Faktor in der "Länge" vergrößert werden. In die Zeilen 2 und 4 müssen entsprechend Leerzeichen eingefügt und die Zeilen selbst um den Faktor vervielfacht werden. Und das ganze am Ende wird zu einem Array zusammengebaut werden.
Ein Fallunterscheidung des Faktors ist damit überflüssig und das Ziffernobjekt kann um beliebige Faktoren skaliert werden.
Wenn du die Darstellung in einem verschachtelten Array String[][] verwalten würdest wäre es vermutlich einfacher. So müsstest Du mit die Strings immer zerstückeln und neu zusammen setzen.
Aber allgemein müssen die Zeilen 1, 3 und 5 um den Faktor in der "Länge" vergrößert werden. In die Zeilen 2 und 4 müssen entsprechend Leerzeichen eingefügt und die Zeilen selbst um den Faktor vervielfacht werden.
Micheal könntest du das nochmal etwas genauer erläutern? Eventuell mit etwas Code? Wäre dir sehr dankbar!
Das habe ich auch schon gesehen, nur da blicke ich überhaupt nicht durch, da sind zwei werte, die man verändern kann und warum true und false? was soll das darstellen?
Nach deiner Lösung vergrößert sich nicht die ziffer sondern einfach nur die rauten, das ist aber falsch, es sollen sich ja die Ziffern vergrößern und mit deinem Code funktioniert es nicht.
So sieht meine Funktion bis jetzt aus, für die vertikale Skalierung. Es soll aber dynamisch sein und nicht fest programmiert sein. Die Werte aus den String 1 und 4 sollen beliebig vergrößerbat sein, mit dem value als parameter soll dann die größe reingegeben werden
Java:
public String[] reziseEntryVertical(String[] scaleFactor, int value) {
List<String> listForData = new ArrayList<String>();
for (String line : scaleFactor) {
listForData.add(line);
}
for (int i = 0; i < listForData.size(); i++) {
System.out.println(listForData.get(i));
if (i == 1) {
listForData.add(1, listForData.get(1));
}
if (i == 4) {
listForData.add(4, listForData.get(4));
}
}
return listForData.toArray(new String[listForData.size()]);
}
die Ziffer dazu sieht so in der Konsole aus
die vertikalen striche sollen beliebig vergrößert werden können
Ich verstehe zwar nicht, was dein Problem ist, und was dir an meinem code nicht passt, da er ja deine Zahl vergrößert, oder stört dich, das die striche nicht nur länger, sondern auch dicker werden?