Inhalt eines Strings um eins hochzählen

MrWhoopy

Mitglied
Hi,

ich habe folgendes Problem:

Ich habe einen bestimmten String der ungefähr so ausschaut: "Testlog-2011-11-07-1.log". Von der Länge her ist er immer gleich. Jetzt möchte ich aber in einer Schleife die letzte Endung (in diesem Fall die "1" ) hochzählen könnnen, also "Testlog-2011-11-07-2.log" und "Testlog-2011-11-07-3.log" usw.

Mit indexOf komm ich genau zur richtigen Stelle aber wie les ich so den Inhalt aus, dass ich ihn anschließend hochzählen kann?

Würde mich sehr über Hilfe freuen :)

Lg

MrWhoopy
 

Camill

Bekanntes Mitglied
Mithilfe von
Code:
Integer.parseInt(String s)
ist es möglich einen String in Int zu parsen.
 

timbeau

Gesperrter Benutzer
Mit indexOf wirds doch schon schwierig, wenn du auf Zehner kommst oder nicht? Oder soll nach ..9 wieder ...1 kommen? Doch eher ...10

Du kannst grundsätzlich mit Integer.parseInt(String s) String in ints umwandeln un d mit String.valueOf(..) wieder zurück in int.

edit
 
Zuletzt bearbeitet:

faetzminator

Gesperrter Benutzer
Wenn du willst, gehts - wie des öfteren - mit etwas Regex Magie ;)
Java:
String inputPart = input.replaceFirst("^.*?(\\-\\d+){3}\\-(\\d+)", "$1");
int value = Integer.parseInt(inputPart) + 1;
Wenn du allerdings einfach ein neues File - welches noch nicht existiert - erstellen willst, dann lauf so lange durch die Dateinamen (mit 1 beginnend), bis dein erstelltes File nicht existiert.
 

MrWhoopy

Mitglied
Ah das klingt schonmal gut^^

Aber irgendwie klappt das nicht so ganz,

Java:
last = rs_1.getString(1);
Integer.parseString(last);

"last" hab ich als String deklariert. Und mit dem getString(1) hol ich mir einen Eintrag aus einer DB. Wenn ich jetzt aber Integer.parseString(last) ausführen will heißt es "the method is undefined for the type integer" ?!
 

MrWhoopy

Mitglied
Hmm sorry irgendwie hab ich glaub grad n Brett vorm Kopf ???:L

Java:
rs_1.next();
String last;
last = rs_1.getString(1);
Integer.parseInt(last);
last = last + 1;
System.out.println(last);

Ich bekomm dauernd tolle Fehler! Ich will ja von meinem String nur die letzte Zahl vor dem .log um eins erhöhen. Aber ich bekomms grad echt nicht hin.

Damit hab ichs auch probiert:

Java:
last = rs_1.getString(1);
String last_1;
last_1 = ""+(Integer.parseInt(last) + 1);
System.out.println(last_1);
 
Zuletzt bearbeitet:
G

Gast2

Gast
Was bekommst du für Fehler?
Wie schaut der String last aus?

Ohne Fehlermeldungen kann man dir schlecht helfen...
 

faetzminator

Gesperrter Benutzer
Java:
rs_1.next();
String last = rs_1.getString(1);
int i = Integer.parseInt(last);
i += 1;
System.out.println(i);
... du solltest dir aber zuerst Mal ein Anfängerbuch zulegen.
 

Andi_CH

Top Contributor
Java:
String inputPart = input.replaceFirst("^.*?(\\-\\d+){3}\\-(\\d+)", "$1");
int value = Integer.parseInt(inputPart) + 1;

Räusper -
Code:
String input = "Testlog-2011-11-07-1.log";

Code:
Exception in thread "main" java.lang.NumberFormatException: For input string: "-07.log"
	at java.lang.NumberFormatException.forInputString(Unknown Source)

Da ist wohl zuviel unverständliche Magie drin ...

Ich wollte den String mit
Code:
input.split("-|.")
in die Teile auftrennen um den danach wieder zusammenzubauen aber der . geht nicht
 

faetzminator

Gesperrter Benutzer
Ups, da hab ich mich ganz vertan. Da sieht man, dass ich den Code gar nicht mehr teste, welchen ich poste :oops:
Natürlich muss erstens Gruppe 2 und nicht Gruppe 1 selektiert werden (bin mir gewöhnt, dass diese einfachen Regex sozusagen nie Groups haben, da kann ich also meistens [c]$1[/c] nehmen), und der Matcher muss auch bis ans Stringende kommen. Also so:
Java:
replaceFirst("^.*?(\\-\\d+){3}\\-(\\d+).*$", "$2")
 

Andi_CH

Top Contributor
So, das Ganze konventionell ohne Magie ;)
Möglicherweise anfängertauglicher

Java:
		String filename = "Testlog-2011-11-07-1.log";
		System.out.println(filename);
		int from = filename.lastIndexOf("-") + 1;
		int to = filename.indexOf(".");
		int nr = Integer.parseInt(filename.substring(from, to));
		filename = filename.substring(0, from) + (nr+1) + ".log";
		System.out.println(filename);

Da könnte man theoretisch auch auf eine Zeile schreiben, dann wärs ähnlich kompliziert wie regex :D
 
Zuletzt bearbeitet:

timbeau

Gesperrter Benutzer
Ich hätte sowas:

Java:
public static void main(String[] args) {
		String start = "Testlog-2011-11-07-134.log";
		System.out.println(start);
		Pattern pattern = Pattern.compile(".*?(\\d+)(-)?.log");
		Matcher matcher = pattern.matcher(start);
		if(matcher.find()){
			String intS = matcher.group(1);
			int i = Integer.parseInt(intS);
			String output = start.substring(0, start.indexOf(intS));
			output = output + (++i) + ".log";
			System.out.println(output);
		}
	}

edit
 
Zuletzt bearbeitet:

Andi_CH

Top Contributor
Nur weil du resistent gegen alle Regextutorials bist :bae: ok ok wird schon wieder OT...
Regex ist extrem schwierig zu verstehen (ich kenn regular expressions schon länger als es Java gibt! All die shells, sed ... jede Applikation hat eine andere Notation) Aus Überlegungen zur Wartbarkeit rate ich dringend davon ab, wenn es nicht ZWINGENDE Gründe gibt regex einzusetzen

Was meinst du - ich hab wirklich danach gesucht warum filename.split("-|."); nicht geht
split"-" tut, split "." nicht - ???:L

Das erachte ich nicht mehr als OT - das gäbe eine weitere Lösungsmöglichkeit die Ziffer zu isolieren.
 

timbeau

Gesperrter Benutzer
Weil .split(Regex) ein Regex erwartet. Der Punkt ist ein Sonderzeichen und will maskiert werden.

Java:
"Testlog-2011-11-07-123.log".split("\\.");

ergibt dann ein Array mit 2 Einträgen "Testlog-2011-11-07-123" und "log"
 

faetzminator

Gesperrter Benutzer
Im Zweifelsfall lieber mehr als weniger escapen. Ein [c]split("\\-|\\.")[/c] wird sicher funktionieren. Ein [c]split("-|\\.")[/c] warscheinlich auch. Ein [c]split("[-.]")[/c] wohl auch, und wer auf Nummer sicher gehen will von mir aus auch ein [c]split("[\\-\\.]")[/c] wobei letzteres (Die Escapezeichen in [c]\\.[c]) in Aufzählungen unnötig ist.
 

Crian

Top Contributor
Ich wollte den String mit
Code:
input.split("-|.")
in die Teile auftrennen um den danach wieder zusammenzubauen aber der . geht nicht

Probiere mal
Code:
input.split("-|\\.")

Java:
 ... 
		Pattern pattern = Pattern.compile(".*?(\\d+)(-)?.log");

Das funktioniert zwar "zufällig", aber besser wäre auch hier [c]".*?(\\d+)(-)?\\.log"[/c].

Natürlich muss erstens Gruppe 2 und nicht Gruppe 1 selektiert werden

Falls dich die erste Gruppe nicht interessiert, kannst du sie auch gruppieren, ohne sie zu speichern. Nämlich per [c](?: ... )[/c]
 
Zuletzt bearbeitet:

faetzminator

Gesperrter Benutzer
Danke für deinen Hinweis. Aber ist dann diese Gruppe nicht auch non-captured im gesamten Regex, d.h. dieser Teil des Strings bleibt bestehen? Hab ich immer so interpretiert...

Ich würde bei der Split-Variante eindeutig zu [c][-.][/c] tendieren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Inhalt eines Strings in JLabel ausgeben? Java Basics - Anfänger-Themen 21
Guybrush Threepwood Inhalt eines Strings für cast verwenden Java Basics - Anfänger-Themen 6
S Ausführen von dem Inhalt eines Strings Java Basics - Anfänger-Themen 16
S spezifischer inhalt eines strings Java Basics - Anfänger-Themen 2
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
N den inhalt eines array per funktion ausgeben Java Basics - Anfänger-Themen 8
karlmasutra OOP Inhalt eines Array ausgeben lassen Java Basics - Anfänger-Themen 8
Silvascus Inhalt eines externen Textdokuments an einen String übergeben Java Basics - Anfänger-Themen 2
1 den Inhalt eines Arrays umdrehen Java Basics - Anfänger-Themen 11
J Inhalt eines Arrays vergleichen? Java Basics - Anfänger-Themen 8
S Inhalt eines Vektors ausgeben Java Basics - Anfänger-Themen 2
K Inhalt eines Elements aus dem Objekt Array auslesen Java Basics - Anfänger-Themen 9
D Inhalt eines Dialogfeldes wird nicht gleich angezeigt? Java Basics - Anfänger-Themen 6
F Inhalt eines Ordners anzeigen lassen Java Basics - Anfänger-Themen 8
J Stringname aus Inhalt eines String erzeugen Java Basics - Anfänger-Themen 12
L Inhalt eines Textfeldes bekommen Java Basics - Anfänger-Themen 3
G Inhalt eines Objektes in ArrayList Java Basics - Anfänger-Themen 3
G Inhalt eines Frame in anderen Frame übertragen ? Java Basics - Anfänger-Themen 2
V Problem beim Inhalt eines Verzeichnisses anzeigen Java Basics - Anfänger-Themen 6
U Textausgabe für Inhalt eines Vectors! Java Basics - Anfänger-Themen 4
A Inhalt eines Vectors rückwärts ausgeben Java Basics - Anfänger-Themen 14
A Inhalt eines Textfeldes Java Basics - Anfänger-Themen 12
M Inhalt eines Arrays Java Basics - Anfänger-Themen 13
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
javapingu Jeglichen Inhalt einer Textdatei nach Zeile n löschen Java Basics - Anfänger-Themen 8
K Ein Objekt Auto kennt den Inhalt seines links und rechtsstehenden Autos, wie soll man das ermöglichen Java Basics - Anfänger-Themen 2
Ameise04 Variablen Inhalt einer Variable im Code verwenden? Java Basics - Anfänger-Themen 9
I String ersetzen, der Inhalt enthält Java Basics - Anfänger-Themen 4
T Inhalt aus TextField in Attribut einer Instanz schreiben Java Basics - Anfänger-Themen 5
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
F Erstellen zweier Objekte mit dem selben Inhalt Java Basics - Anfänger-Themen 1
X TextField-Inhalt mit Button in .txt-Datei speichern Java Basics - Anfänger-Themen 16
J Datentypen CSV to DB Leere Zellen in CSV mit Inhalt? Java Basics - Anfänger-Themen 11
H Universitätsaufgabe String inhalt Kontrollieren Java Basics - Anfänger-Themen 9
C Vector-Inhalt in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 6
D Ich suche nach einer Möglickeit den Webseiten Inhalt per Java zu analysieren Automatisch Java Basics - Anfänger-Themen 3
L Namensliste mit Array zeigt nicht den gewünschten Inhalt Java Basics - Anfänger-Themen 12
F Variablen JTextField-Inhalt kann nicht mit String abgeglichen werden Java Basics - Anfänger-Themen 2
Zeekay Development Methoden Methoden Inhalt Abhängig vom Objekt? Java Basics - Anfänger-Themen 9
B BufferedReader gibt Datei-Inhalt doppelt aus Java Basics - Anfänger-Themen 3
M Ordner mit Inhalt löschen Java Basics - Anfänger-Themen 7
R getrennte Objekte aus Klasse erstellen : warum Inhalt dann gleich ? Java Basics - Anfänger-Themen 2
F Inhalt einer Variable auswerten, die sich immer wieder ändert Java Basics - Anfänger-Themen 1
K Variablenname soll der Inhalt vom String sein Java Basics - Anfänger-Themen 2
O Zip-File Inhalt einlesen Java Basics - Anfänger-Themen 3
S Inhalt aus anderen Klassen verwenden Java Basics - Anfänger-Themen 1
H Input/Output Inhalt einer GUI in Textdatei speichern Java Basics - Anfänger-Themen 1
M Wie gebe ich den Inhalt aus? Java Basics - Anfänger-Themen 17
K Inhalt von einer csv-Datei abspeichern Java Basics - Anfänger-Themen 3
P Seite auf Inhalt prüfen Java Basics - Anfänger-Themen 2
U Inhalt von JTextfield an andere Klasse weitergeben Java Basics - Anfänger-Themen 13
Uzi21 jTable / Inhalt speichern Java Basics - Anfänger-Themen 2
T CSV auf Inhalt und Zeilen überprüfen Java Basics - Anfänger-Themen 2
S Inhalt von JPanel erst nach Resize sichtbar Java Basics - Anfänger-Themen 2
T Aufgerufene Methode Inhalt der übergebenen Referenz Java Basics - Anfänger-Themen 5
A Leere Datei wird ohne Inhalt geschrieben, obwohl Inhalt geschrieben wurde. Java Basics - Anfänger-Themen 4
K Inhalt in den Zwischenspeicher legen Java Basics - Anfänger-Themen 2
kaoZ Input/Output Verzeichnis Inhalt in combobox ausgeben Java Basics - Anfänger-Themen 8
G JTable: Inhalt einer selektierten Zeile speichern Java Basics - Anfänger-Themen 2
G Inhalt einer JTextArea wird nicht dargestellt Java Basics - Anfänger-Themen 8
J Inhalt in einem Text-File finden und in ein Array schreiben Java Basics - Anfänger-Themen 5
R Inhalt vom String größer oder kleiner als Java Basics - Anfänger-Themen 16
F Erste Schritte if Inhalt Java Basics - Anfänger-Themen 7
C Erste Schritte String-INhalt in TXT ausgeben Java Basics - Anfänger-Themen 7
L Split + Zeilen einer Datei mit bestimmtem Inhalt löschen Java Basics - Anfänger-Themen 23
U OOP Array vom Typ String > Inhalt ausgeben Java Basics - Anfänger-Themen 8
M Array Inhalt kopieren Java Basics - Anfänger-Themen 3
O Container Inhalt auslesen Java Basics - Anfänger-Themen 2
M Inhalt/Wert aus einer JList ablesen Java Basics - Anfänger-Themen 5
M String auf Inhalt überprüfen Java Basics - Anfänger-Themen 11
H Mehrdimensionales Array - Inhalt auf Null überprüfen Java Basics - Anfänger-Themen 5
B Datentypen Inhalt von Objekten miteinander vergleichen Java Basics - Anfänger-Themen 2
I Mehrere ArrayLists mit einer for( : ) Schleife auf Inhalt prüfen Java Basics - Anfänger-Themen 6
R Erste Schritte Objekte mit anderen Objekten als Inhalt Java Basics - Anfänger-Themen 4
F Kopieren von Ordner sammt inhalt Java Basics - Anfänger-Themen 5
I Datei einlesen, Inhalt in MAP ablegen Java Basics - Anfänger-Themen 10
E Inhalt von Option Feldern auslesen? Java Basics - Anfänger-Themen 2
Helgon Inhalt - Aktualisierungs Problem Java Basics - Anfänger-Themen 7
T Inhalt Gridlayout wird nicht angezeigt Java Basics - Anfänger-Themen 6
O Variablen Variablen Inhalt von Webseite einlesen!? Java Basics - Anfänger-Themen 2
M String Inhalt wird überschrieben (Subklassen verwenden denselben String) Java Basics - Anfänger-Themen 13
Gossi Input/Output Datei Lesen, inhalt abfragen, speichern Java Basics - Anfänger-Themen 5
B jar Inhalt anzeigen Java Basics - Anfänger-Themen 5
H Input/Output Inhalt einer TextArea in Hex umwandeln Java Basics - Anfänger-Themen 10
D Textfile lesen/schreiben abhängig vom inhalt Java Basics - Anfänger-Themen 6
X Collections Inhalt von zwei Collections prüfen Java Basics - Anfänger-Themen 4
D jTable befüllen mit dynamischem Inhalt Java Basics - Anfänger-Themen 11
M Inhalt Textfeld prüfen Java Basics - Anfänger-Themen 4
H Java-Fenster ohne Inhalt Java Basics - Anfänger-Themen 2
D Inhalt der Spalten einer Tabelle addieren Java Basics - Anfänger-Themen 4
B Datentypen Inhalt zum Iterator wieder aufrufen? Java Basics - Anfänger-Themen 10
E Inhalt zwischen zwei String auslesen? Java Basics - Anfänger-Themen 8
F String-Inhalt als Datatype-Name Java Basics - Anfänger-Themen 5
D Inhalt einer Liste auf nur ein Wert überprüfen ohne die Liste komplett zu interieren Java Basics - Anfänger-Themen 6
M Tabelle mit immer sortiertem Inhalt Java Basics - Anfänger-Themen 5
S JFileChooser - Dateinamen vorschlagen/Inhalt der Ausgabe prüfen Java Basics - Anfänger-Themen 3
J JList Inhalt nach JButton Klick aktualisieren Java Basics - Anfänger-Themen 8
L Inhalt von JEditorPane löschen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben