Methoden Textdatei Teil String auslesen

Silitbang

Mitglied
Ich habe eine Textdatei mit folgendem Format:


2011 2 3 4
2012 4 8 9
2013 4 4 7


Wenn ich die Zahl 2011 habe, will ich den Inhalt 2 3 4 zurückbekommen. Das ganze muss dann noch in ein int Feld gebracht werden, aber das ist erstmal nebensächlich.

Wie kann ich das am besten realisieren?
 
Hi,

StringBuilder (Java 2 Platform SE 5.0)

Java:
public class Test{
	
	public static void main(String []args){
		
		String s = "2011 2 3 4";
		
		StringBuilder str = new StringBuilder(s);
		System.out.println(str.substring(5)); // je nachdem ob mit oder ohne Leerzeichen
		System.out.println(str.substring(4));
	}
}

Brauchst du die einzelnen Werte als int ?
Falls ja einfach den String beim Leerzeichen splitten mit split(" ") dort erhältst du ein Array und das kannst du dann parsen, musst die Zahlen halt entsprechend mit Index 0 1 2 aufrufen.
 
Zuletzt bearbeitet:
Such dir per Google eine Methode die dir nen Textfile ausliest und nen String zurückgibt, oder schreib sie dir selber.

Ein Beispielcode um alle Zahlen die hinter 2012 stehen auszugeben könnte so aussehen: (textFileContent ist ein String in dem der Inhalt deiner Textdatei drinnsteht)
Java:
		String[] lines = textFileContent.split("\n"); // oder \r\n oder \r, je nachdem welchen Zeilenumbruch die Textdatei benutzt...
		for(String line : lines){
			if(line.startsWith("2012")){
				String[] parts = line.split(" ");
				for(int i=1;i<parts.length;++i){
					System.out.println(parts[i]);
				}
			}
		}
 
Zuletzt bearbeitet:
Ok super vielen Dank. Das Textfile hab ich schon ausgelesen, ich schau mal ob das dann alles funktioniert.

Das finale Codestück das funktioniert:
Java:
else {
			String[] lines = inhalt.split("\r\n");
			for (String line : lines) {
				if (line.startsWith(jahr)) {
					String[] parts = line.split(" ");
					for (int i = 2; i < parts.length; ++i) {
						tag[i - 2] = Integer.parseInt(parts[i]);
					}
				}
			}
			return tag;

Eine Frage noch, Thema ist aber schon gelöst: Was bedeutet for (String line : lines) oder was macht diese for-Schleife, mir ist die Semantik nicht bekannt.
 
Zuletzt bearbeitet:

Zurück
Oben