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.
String/StringBuffer mit Zeichen einer Sorte füllen
Ein eigentlich simples Problem auf das ich einfach keine Antwort finde: :?
Wie füge ich in einen StringBuffer eine Folge von Leerzeichen (am Anfang) ein.
Da die Methode insert es erlaubt dort ganze Strings einzufügen, würde mir ein String voller Leerzeichen reichen.
So in etwa:
Das wollte ich schon immer mal wissen - woran erkennt man denn "professionelle" Lösungen? Und zur Unsicherheit: unsicher ist das nur dann, wenn man vorab nicht weiss, wieviel Leerzeichen einzufügen sind.
Die substring-Lösung dürfte bzgl. Performance die Nase vorn haben; nur deshalb würde ich sie einsetzen, wo die Randbedingungen (s.o.) es zulassen
Professionelle Lösungen erkennt man meist daran, dass sie sehr generisch sind (z.B. keine Voraussagen über die Anzahl Zeichen machen).
Aber... professionelle Lösungen sind nicht unbedingt schnelle Lösungen. Deine Variante dürfte im Bezug auf die Performance wirklich etwas vom besten sein.
Um deine Idee generischer zu machen: ich würde nicht direkt einen String " [...] " schreiben, sondern einen StringBuilder benutzen, der lauter Leerzeichen enthält. Falls der Builder zu klein ist, könnte man ihm weitere Leerzeichen hinzufügen. Mit "subSequence" hat man etwas ähnliches wie "subString". Der Builder ist dann ein Cache den man natürlich irgendwo speichern muss :wink:
Würde ich so nicht unterschreiben. "Professionell" heisst für mich in erster Linie "im Rahmen einer bezahlten / beruflichen Tätigkeit". Über die Qualität sagt das erstmal nicht aus - ausser der Tatsache, das irgendjemand bereit ist, dafür Geld zu bezahlen
Beni hat gesagt.:
Um deine Idee generischer zu machen: ich würde nicht direkt einen String " [...] " schreiben, sondern einen StringBuilder benutzen, der lauter Leerzeichen enthält. Falls der Builder zu klein ist, könnte man ihm weitere Leerzeichen hinzufügen. Mit "subSequence" hat man etwas ähnliches wie "subString". Der Builder ist dann ein Cache den man natürlich irgendwo speichern muss :wink:
Gute Idee. Wenn ich aber die maximale Länge von Leerzeichen wirklich kenne, dann würde ich doch bei der einfachen Lösung mit der Konstanten bleiben wollen, da das vom Compiler (oder spätestens vom JIT bzw. von der Hotspot-VM) vermutlich besser optimiert werden kann.
Ich würde nicht sagen, "beruflich -> professionell". Es gibt mehr als genug Software, die das Gegenteil beweist... Ich würde sagen, "professionell = gut".
Op die Anzahl Zeichen im voraus bekannt sind, kann nur der Threadersteller sagen. Aber ich würde unbedingt irgendeine Sicherung einbauen, damit man diese Zahl im Nachhinein ändern kann (ohne dass man wild nach allen, nun auftretenden, Fehlerquellen suchen muss).
Ich würde nicht sagen, "beruflich -> professionell". Es gibt mehr als genug Software, die das Gegenteil beweist... Ich würde sagen, "professionell = gut".
Aber ich würde unbedingt irgendeine Sicherung einbauen, damit man diese Zahl im Nachhinein ändern kann (ohne dass man wild nach allen, nun auftretenden, Fehlerquellen suchen muss).
Ich wollte Dir mit meinem Kommentar nicht zu nahe treten, sondern nur ausdrücken, dass ich auf so ne Idee nicht gekommen wäre.
Ich würde halt ne einfache Schleife bevorzugen, weil der Code dann 1. übersichtlicher ist und 2. besser wiederverwendbar. Und das sind doch zwei der wichtigen Faktoren, die bei der "professionellen" Softwareentwicklung zählen. Du musst halt auch mal an den Kollegen denken, der Deinen Code vielleicht mal reviewed.
Und wegen der Bedeutung von professionell: Natürlich steht im Duden "beruflich" als Bezeichnung, aber Beni hat genauso recht. Man meint damit dann halt auch guten Code. Denn nicht jeder Programmierer, der damit Geld verdient, produziert auch professionellen Code.
Danke für die Mühe, anscheinend hat Java ja wirklich keine Funktion dafür eingebaut ???:L , dann muss halt die For-Schleife her halten. :bloed:
Die Zahl der Leerzeichen ist nicht bekannt und (theoretisch) auch nicht beschränkt.