Ersetzen von Teilstrings in ArrayList von Strings

K

krtek

Gast
Hallo, ich habe ein kleines Problem mit dem ersetzen von Ausrücken in Strings. Prinzipiell stellt das ja kein Problem dar:

Java:
String str = "1       5     220       1       0       0       0       0       2       0   20487   68595   58595";
System.out.println(str.replace('1','9'));
System.out.println(str.replace("68595", "58596"));

liefert das was es soll:
9 5 220 9 0 0 0 0 2 0 20487 68595 58595
1 5 220 1 0 0 0 0 2 0 20487 58596 58595

Jetzt hab ich aber das Problem, dass ich den Inhalt von "str" in einer ArrayList habe (elements = new ArrayList<String[]>();):

Java:
System.out.println("Zeile: " + elements.get(jj)[0]);
gibt:
1 5 220 1 0 0 0 0 2 0 20487 68595 58595

So weit so gut, jetzt versuche ich mit:

Java:
elements.get(jj)[0].replace("68595", "58596");

einen Teil der Zeile zu ersetzen. Leider willl und will das ganze nicht hinauen. Es kommt als Ergebnis immer die Zeile raus, die ich reingesteckt habe.
Als Ergebnis hätte ich eigentlich gern:
1 5 220 1 0 0 0 0 2 0 20487 58596 58595

Hat einer von euch ne Ahnung woran das liegen könnte ? Bestimmt ein total doofer Anfängerfehler.

Danke schonmal. Martin.
 

XHelp

Top Contributor
Machst du vllt:
Java:
elements.get(jj)[0].replace("68595", "58596");
System.out.println(elements.get(jj)[0]);
?
 

Murray

Top Contributor
String.replace verändert das String-Objket selbst nicht (denn Strings sind immutable); die Methode liefert vielmehr ein neues, geändertes String-Object zurück. Du musst das Ergebnis also noch ins Array stecken.
 
K

krtek

Gast
sorry, bin noch relativer anfänger, wie geht das denn ? muss ich das ganze elements-objekt neu erzeugen bzw eine Kopie davon erstellen ? gibts eine elegantere variante ?
 

XHelp

Top Contributor
Du musst das Ergebnis von replace irgendwohin zuweisen, z.B.:
Java:
list.get(0)[0] = list.get(0)[0].replace("123", "bla");
 
K

krtek

Gast
*doh

danke, mensch, das ist ja peinlich ^^. aber naja, lernen durch scmerz :D

danke und schönen abend noch.
 
K

krtek

Gast
Hallo, ich habe nochmal eine kleine Frage.
Ich habe jetzt einen String, beispielsweise
Java:
   68595
, und darin einen i8-Wert (Integer mit 8 Zeichen). Diesen würde ich jetzt gerne in einen i9-Wert umwandeln und dann in eine Textdatei schreiben, also eigentlich an den String nur ein Leerzeichen vorne dran.
Das funktioniert ja priinzipiell, ich frage mich nur, ob es mit den ganzen Number- und DecimalFormat-Optionen eine bessere Möglichkeit gibt. Dasselbe Problem habe ich dabei den String
Java:
      71.3750000
von einem e16.9 in ein e23.16 Real-Wert umzuschreiben und dann in eine Textdatei zu schreiben.

Den ganzen Aufwand hab ich, weil ich Eingabedaten für ein Fortran-Programm generieren möchte. Hat einer von euch ne Ahnung, wie ich diese Konvertierungen sinnvoll und einfach mit Java hinbekomme ?

Danke und schönen Sonntag ;)
 

XHelp

Top Contributor
Du füllst ja nicht mit 0 auf, sondern mit Leerzeichen, das hat also wenig mit Zahlen zu tun.
Was sind denn "e16.9" und "e23.16"? Sind es Mantisse- und Exponent-Länge?
 
G

gman

Gast
Hi,

vielleicht hilft dir die Methode "public static String String.format(String format, Object... args)" weiter. In
der Java-API-Doc ist zu der Methode noch ein Link zu den Möglichkeiten bezüglich des Format-Strings.
 
K

krtek

Gast
e16.9 und e24.16 sind Zahlenformate in Fortran für Real-Werte, also e16.9 ist eine Real-Zahl mit insgesamt 16 Stellen und 9 signifikanten Nachkommastellen.

Mein Problem ist, ich habe einen String, beispielsweise
Java:
String str="       5      12    7500  964.000000      0.00000000      74.1250000    "

Dieser besteht aus 3i8-Werten, also 3 Integer-Zahlen mit jeweils maximal 8 Zeichen und danach 3e16.9-Zahlen, also Real-Werte mit 16 Zeichen (mit Leerzeichen).
Mich interessieren nun nur die letzten 3 Zahlen, also die Real-Werte. An die komm ich auch ran mit

Java:
String str="       5      12    7500  964.000000      0.00000000      74.1250000    ";
String[] strarray = str.substring(24).trim().split("[, * ]+");
for (int ii=0; ii<strarray.length; ii++){
        System.out.println(strarray[ii]);
}

ich weiß nur nicht ob mir das etwas nützt. Am Ende jedenfalls, hätte ich gerne aus den Real-Werten mit 16Zeichen (e16.9) welche mit 24Zeichen gemacht(e24.16) und diese wieder als String, damit ich sie in eine Textdatei schreiben kann:

Java:
String output = "  9.6400000000000000E+02  0.0000000000000000E+00  7.4125000000000000E+01"

Geht diese Umwandlung irgendwie elegant ?
 
K

krtek

Gast
Danke gman,

der Tip mit String.format hat geholfen. Jetzt les ich das ganze aus, und mit
Java:
String.format("%24.16E" ,d);
klappts so wie ich das gern haben will.
thx
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Gleichzeitiges ersetzen mehrerer Strings Java Basics - Anfänger-Themen 7
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
A 1 Leerzeichen durch zwei Leerzeichen ersetzen Java Basics - Anfänger-Themen 4
A JTextArea entfernen und durch neuen Text ersetzen Java Basics - Anfänger-Themen 8
obiwanke Ziffern durch ASCII Character ersetzen Java Basics - Anfänger-Themen 8
C In String, Buchstaben ersetzen durch andere Buchstaben Java Basics - Anfänger-Themen 26
C if-Konstrukt durch switch-Konstrukt ersetzen Java Basics - Anfänger-Themen 14
W Best Practice Tabulatoren verschiedener Länge ersetzen Java Basics - Anfänger-Themen 8
I String ersetzen, der Inhalt enthält Java Basics - Anfänger-Themen 4
T Zahl in Array ersetzen Java Basics - Anfänger-Themen 2
D Input/Output fehlerhafter Algorithmus zum Ersetzen von Array-Werten nach logischem Schema Java Basics - Anfänger-Themen 1
N for Schleife durch Rekursion ersetzen Java Basics - Anfänger-Themen 6
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
V Erste Schritte Vokale im Satz ersetzen Java Basics - Anfänger-Themen 20
S Ersetzen eines Asterix in einem String Java Basics - Anfänger-Themen 8
ruutaiokwu Ausgegebene Zeile ersetzen mit neuem Text Java Basics - Anfänger-Themen 3
CptK Interface Curser durch Bild ersetzen & MouseListner Java Basics - Anfänger-Themen 2
S Wort suchen und ersetzen in einer Datei Java Basics - Anfänger-Themen 6
W Teilstring durch Teilstring mittels StringBuilder ersetzen Java Basics - Anfänger-Themen 7
J Kopierte Datei soll alte ersetzen. Java Basics - Anfänger-Themen 6
K BufferedReader für IOTools ersetzen? Java Basics - Anfänger-Themen 17
Jinnai4 Strings ersetzen Java Basics - Anfänger-Themen 9
G Wert in Textdatei ersetzen? Java Basics - Anfänger-Themen 2
C char in String suchen und durch anderen String ersetzen Java Basics - Anfänger-Themen 2
M 2 Stellen in einem Array vergleichen und bei übereinstimmen eine davon ersetzen Java Basics - Anfänger-Themen 1
F In LinkedList einen Wert ersetzen oder neu einfügen Java Basics - Anfänger-Themen 7
Alex/89 String in einer txt ersetzen Java Basics - Anfänger-Themen 15
B Greenscreen (grüner Hintergrund ersetzen mit Bild) Java Basics - Anfänger-Themen 49
E RTF/DOC(x) textteile ersetzen/verändern Java Basics - Anfänger-Themen 0
K ArrayList durch ArrayList ersetzen Java Basics - Anfänger-Themen 5
T Strings ersetzen mit \ Java Basics - Anfänger-Themen 10
A Suchen und ersetzen Java Basics - Anfänger-Themen 13
Lord.Djerun (Taschenrechner Netbeans) Komma nur einmal schreiben & 0 ersetzen Java Basics - Anfänger-Themen 1
A Text mit "Scanner" eingeben und Umlaute ersetzen Java Basics - Anfänger-Themen 7
hello_autumn Strings ersetzen... Java Basics - Anfänger-Themen 10
S Wort in Text suchen und ersetzen Java Basics - Anfänger-Themen 3
G Ersetzen eines confirm dialogs/ synchronisieren von methoden Java Basics - Anfänger-Themen 6
T Best Practice JUnit: Wie Klassen durch Stubs/Mockups ersetzen Java Basics - Anfänger-Themen 7
J Ersetzen Java Basics - Anfänger-Themen 4
Ananaskirsche Input/Output Platzhalter durch String in yml-Datein ersetzen Java Basics - Anfänger-Themen 5
AssELAss ß durch ss oder SS ersetzen Java Basics - Anfänger-Themen 10
J Input/Output String Suchen und Ersetzen Java Basics - Anfänger-Themen 8
M nach Typenkonvertierung Leerzeichen ersetzen Java Basics - Anfänger-Themen 2
G Line Separator in ArrayList durch ";" ersetzen Java Basics - Anfänger-Themen 4
L Wort in String ersetzen Java Basics - Anfänger-Themen 11
N Java Programm zum Suchen und Ersetzen von Text Dateien Java Basics - Anfänger-Themen 10
F Hexfolge in Byte Array ersetzen Java Basics - Anfänger-Themen 8
J Vokale ersetzen Java Basics - Anfänger-Themen 7
G GUI Label Werte ersetzen Java Basics - Anfänger-Themen 25
G String ersetzen Java Basics - Anfänger-Themen 5
G GUI JLabel ersetzen Java Basics - Anfänger-Themen 3
X String einzelne Buchstaben ersetzen Java Basics - Anfänger-Themen 4
C Variablen Variablen ersetzen Java Basics - Anfänger-Themen 7
Kenan89 Bestimmte Zeile in txt-Datei ersetzen Java Basics - Anfänger-Themen 4
D Slash durch zwei Backslash ersetzen Java Basics - Anfänger-Themen 11
S Button durch ImageIcon ersetzen Java Basics - Anfänger-Themen 9
C Elemente im StringBuffer ersetzen Java Basics - Anfänger-Themen 19
S im StringBuilder Zeichenketten ersetzen Java Basics - Anfänger-Themen 6
A String ersetzen Java Basics - Anfänger-Themen 6
B Char in String ersetzen Java Basics - Anfänger-Themen 15
J Alle Vorkommen eines chars in einem Array durch einen anderen char ersetzen Java Basics - Anfänger-Themen 10
I Ersetzen eines Objektes in einer Liste? Java Basics - Anfänger-Themen 5
A Datentypen Sonderzeichen / Strings ersetzen Java Basics - Anfänger-Themen 3
A Vokale im String ersetzen Java Basics - Anfänger-Themen 12
S Objekt durch Schnittstelle ersetzen Java Basics - Anfänger-Themen 2
F Substring mittels RegEx ermitteln/ersetzen? Java Basics - Anfänger-Themen 2
S Datentypen In mehreren Dateien Strings ersetzen Java Basics - Anfänger-Themen 14
A Doppelter Backslash durch einen einfachen Backslash ersetzen Java Basics - Anfänger-Themen 6
T Doppelte Anführungszeichen ersetzen?? Java Basics - Anfänger-Themen 4
B Vector in Table ersetzen Java Basics - Anfänger-Themen 4
J Große animierte Gif preloaden und solange mit einer nicht animierten ersetzen Java Basics - Anfänger-Themen 5
Daniel_L RegEx - Ersetzen ausschließen? Java Basics - Anfänger-Themen 6
S .txt einlesen->Zeilen ersetzen->neu.txt speichern Java Basics - Anfänger-Themen 13
S Backslash ersetzen. Java Basics - Anfänger-Themen 5
D mehrere Leerzeichen durch 1 Leerzeichen ersetzen Java Basics - Anfänger-Themen 3
M Panel ersetzen funktioniert nicht Java Basics - Anfänger-Themen 2
D Datentypen String Inhalte ersetzen Java Basics - Anfänger-Themen 8
N sich wiederholende arrayfelder ersetzen for-schleife Java Basics - Anfänger-Themen 9
C Variable Zeichenkette innerhalb einer Schleife ersetzen Java Basics - Anfänger-Themen 4
K Ersetzen von \" Zeichenfolge Java Basics - Anfänger-Themen 8
A Array einfügen, ersetzen und löschen Java Basics - Anfänger-Themen 1
G Enter-Zeichen aus String ersetzen Java Basics - Anfänger-Themen 5
J 4. vorkommende Zeichen ersetzen. Java Basics - Anfänger-Themen 7
V Bilder auf einer Seite markieren und ersetzen Java Basics - Anfänger-Themen 2
D Ascii-Code ersetzen mit Umlauten Java Basics - Anfänger-Themen 6
K Regex alle "<br><br>*" ersetzen Java Basics - Anfänger-Themen 2
G String Suchen ersetzen replace_all() Java Basics - Anfänger-Themen 6
W Zeichen ersetzen im InputStream Java Basics - Anfänger-Themen 3
C einen Link durch einen anderen Lunk ersetzen Java Basics - Anfänger-Themen 8
G Zeile in Textdatei ersetzen Java Basics - Anfänger-Themen 9
O Zeichen ersetzen Java Basics - Anfänger-Themen 3
F regex bei replaceAll und backslash ersetzen geht nicht. Java Basics - Anfänger-Themen 1
K String ersetzen Java Basics - Anfänger-Themen 10
C Rekursion durch Schleife ersetzen Java Basics - Anfänger-Themen 9
G Ersetzen von Zeichen "/" "" Java Basics - Anfänger-Themen 3
G Zeilenumbrüche in String durch <br> ersetzen? Java Basics - Anfänger-Themen 3
H String und HEX-Werte ersetzen Java Basics - Anfänger-Themen 8
J Zeichen ersetzen Java Basics - Anfänger-Themen 2
K Ersetzen mit .* Java Basics - Anfänger-Themen 10
K Leere Stelle im Array finden und ersetzen Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben