ERLEDIGT
JA
JA
ANTWORTEN
15
15
ZUGRIFFE
2501
2501
EMPFEHLEN
-
Hi Leutz.
Wie bringe ich es hin das ich ab einer bestimmten Stelle in einen String schreibe..
d.h.
String str, teil1="teil1", teil2="teil2", teil3="teil3";
nun soll teil 1 ab der 10 stelle im String stehen, teil2 ab der 20 und teil3 ab der 30
d.h.
str soll dann so aussehen
str = "----------teil1-----teil2-----teil3-----"
** leerzeichen werdne leider nicht dargestellt.. deswegen nehme ich "-"Geändert von MScalli (26.05.08 um 15:23 Uhr)
-
Hallo,
hast du einen String, in den das ganze eingebaut werden soll oder was soll gemacht werden?
MFG
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
joop.. ich muss diesen string dann übergeben..
sind einige textfelder die ich auslese und dann hab ich einen String in dem steht ab welcher stelle das dann stehen soll.. z.B. tf_artnr ab stelle 15 usw.Geändert von MScalli (26.05.08 um 15:40 Uhr)
-
Ich hab zwar nicht so ganz verstanden was du machen möchtest, aber warum baust du dir den String nicht einfach zusammen?
MFG
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
also gibts keine möglichkeit zu sagen
ab der 0ten stelle schreibe var_1
ab der 15ten stelle schreibe var_2
ab der 30ten stelle schreibe var_3 usw.
so wie beim zerhacken mit substring!
-
Nein, die Möglichkeit gibts leider nicht.
MFG
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
und nen formatter benutzen.. z.B. so wie beim MaskFormatter
denn ich habe das Problem das wenn in einem Textfeld mal nichts stehtder String total anderst aussieht.
so wollte ich es eigentlich machen!!
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
private void saveDataset(){ String str_art = ""; str_art = tf_artnr.getText(); str_art += tf_bez1.getText(); str_art += tf_bez2.getText(); str_art += tf_teileart.getText(); str_art += tf_artgruppe.getText(); str_art += tf_abc_schluessel.getText(); str_art += " "; str_art += tf_umrechnungsfaktor.getText(); str_art += tf_mengeneinheit_ek.getText(); str_art += tf_lieferantennr.getText(); str_art += tf_wbz.getText(); str_art += tf_stuecklisten.getText(); str_art += tf_lager.getText(); str_art += " "; str_art += " "; str_art += " "; str_art += tf_akt_lagerbestand.getText(); System.out.printf(str_art); String str_skala =""; int zaehl_skala = 0; for(int i = 0; i < str_art.length(); i++){ zaehl_skala++; if(i%10 == 0) zaehl_skala = 0; str_skala += String.valueOf(zaehl_skala); } System.out.println(); System.out.println(str_skala); }
die skala ist nur zum ablesen an welcher stelle die Strings stehen..
wenn ich alles eintrage dann gehts..
aber wenn ich jetzt mal in nem Feld nichts habe rücken alle anderen Strings um soviel stellen nach links!!
-
26.05.08 16:28 #8"... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)
"Sir?, we're sorrounded!"
"Excellent, we can attack in any direction"
-
das wär natürlich ne super sache.. leider darf ich nicht.
es wird ein cobol Programm augerufen dem ich diesen String übergeben muss.
und deswegen muss jedes TextFeld ab ner bestimmten spalte anfangen.
wenn ich bei allen Textfeldern den MaskFormatter nehmen könnte wärs auch kein Prob..
leider geht das auch nicht da ich zuviel abprüfen muss usw.
also ist die einzige chance das teil irgendwie per hand zusammen zu flicken...
nur ich weiss echt nicht wie
-
26.05.08 16:41 #10
Nimm halt dennoch einen Vector und speicher dort nacheinander alle Texte rein. Anschließend erstellst du einen neuen String und fügst den ersten Text ein. Dann überprüfst du, wie viele Zeichen noch bis zur nächsten Grenze fehlen und füllst entsprechend viele Leerzeichen. Dann den nächsten String ...
Klar soweit?
"... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)
"Sir?, we're sorrounded!"
"Excellent, we can attack in any direction"
-
Ihr immer mit eurem Vektor... eine ArrayList ist wirklich 8-10 mal schneller.
Mach dir halt eine Methode die einen String bekommt und diesen bis zu einer bestimmten Stelle mit Leerzeichen auffüllt. Dann kannst du den Rest konkatenieren.
Also aus:
Hallo, 10
würde dann
Hallo__________
(_ stehen hier mal für Leerzeichen).
Dann weißt du genau das alles die richtige Länge hat und kannst es aneinander hängen.
Andernfalls müßte es wohl auch mit einem StringBuilder und einem insert gehen.
-
joop.. die einzige lösung ist es zeichenweise alles zu füllen..
die Strings sind dank MaskFormatter schon ok.. und für die Zahlenfelder hab ichs so gelöst
(nachkommastellen müssen immer stimmen und vorangehende leezeichen müssen Nullen sein.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
// ist es eine ganze Zahl oder sind Nachkommastellen vorhanden if(str_nachkomma.equals("00")){ for(int i = tf.getText().length(); i < Integer.parseInt(str_laenge); i++){ str_return = "0" + str_return; } return str_return; }else{ // hier sind Nachkommastellen vorhanden UND es steht nichts drin if(tf.getText().length() == 0){ for(int i = 0; i < Integer.parseInt(str_laenge) - Integer.parseInt(str_nachkomma) - 1; i++){ str_return += "0"; } str_return += ","; for(int i = 0; i < Integer.parseInt(str_nachkomma); i++){ str_return += "0"; } return str_return; }else{ // Hier steht schon was drin. D.h. nachkommastellen passen schon. Es müssen nur die 0en vorangestellt werden for(int i = tf.getText().length(); i < Integer.parseInt(str_laenge); i++){ str_return = "0" + str_return; } return str_return; } }
thx leutz
-
27.05.08 10:57 #13
- Registriert seit
- Aug 2005
- Ort
- Karlsruhe (Baden-Württemberg)
- Beiträge
- 905
Wenn wir es schon von Performance haben....benutze lieber einen Stringbuffer (thread-sicher) oder einen Stringbuilder (nicht thread-safe). Da bei einem normalen String beim hinzufügen immer ein neuer String erstellt wird und das einfach nur verdammt langsam ist.
(mit append anhängen und mit insert etwas einfügen)
Am Ende kannste dann mit einem toString den String dir holen.Geändert von Anime-Otaku (27.05.08 um 11:00 Uhr)
Wäre super wenn ihr euren Code in dieser Form einfügt:
[java]System.out.println("Hello World");[/java]Code java:1
System.out.println("Hello World");
Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
Blog: http://javaeffective.wordpress.com/
-
Moin,
ich würde Euch dringend raten anstatt Strings einfach hintereinander zu kleben besser eine Instanz von StringBuilder oder StringBuffer (abhängig von der verwendeten Java Version) zu verwenden. Dies hat die Vorteile:
a) schneller, da nicht ständig neue Instanzen erzeugt werden müssen (Java nutzt intern beim verketten ebenfalls diese Klasse, muss die Instanzen aber logischerweise jedesmal wieder wegwerfen)
b) nicht so speicherhungrig
Ansonsten preferiere ich auch eine Methode, nach der art:
Code :1 2 3 4 5 6 7 8 9 10 11 12
public StringBuilder concatinate (StringBuilder sb, CharSequence val, char fillChar, int fillLength) { int startlength = sb.length(); sb.append(val); while (sb.length() < startlength + fillLength) { sb.append(fillChar); } //gegebenenfalls die Länge des Strings beschneiden (Wenn zu lang) sb.setLength(startlength + fillLength); return sb; }
ACHTUNG: der code ist nicht getestet (nur mal schnell so ningeschrieben), daher denke ich werden da compilefehler enthalten sein, die sollten aber mit Hilfe des Compilers schnell auffindbar sein...
Gruß
NoComment
-
Zu dem Thema Stringkontatenation und "Optimierungen":
http://java.sun.com/developer/techni...kabutz_qa.html
Es kommt schon drauf an ob der Compiler die Konkatenationen optimieren kann oder nicht.. Allgemein zu sagen es wäre schneller ist allerdings problematisch
Genauso wie ich weiter for-each verwenden werde auch wenn es langsamer ist als Indizierte Iteration... aber das nur am Rande.
Ähnliche Themen
-
In einen variablen String einen anderen an bestimmter Stelle einfügen
Von firewing im Forum PHPAntworten: 2Letzter Beitrag: 30.09.09, 23:10 -
Char von bestimmter Stelle im String suchen
Von sra im Forum Visual Basic 6.0Antworten: 4Letzter Beitrag: 16.01.08, 10:57 -
Maus an bestimmter Stelle
Von illetuffi im Forum Flash PlattformAntworten: 2Letzter Beitrag: 04.05.05, 12:57 -
jpg an bestimmter stelle einfügen?
Von vaporizer im Forum HTML & XHTMLAntworten: 2Letzter Beitrag: 24.03.04, 18:37 -
an bestimmter Stelle in txt datei schreiben
Von Grunz im Forum PHPAntworten: 2Letzter Beitrag: 19.06.02, 18:36





Zitieren



Login





