power-poler
Goto Top

Main als class

Hallo
Habe jetzt schon länger nicht mehr mit Java Programmiert, und habe auch die ganzen fachbegriffe nicht mehr so genau im Kopf, also endschuldigt bitte falls ich mich falsch ausdrüge, bzw falsche begriffe verwände.

Habe jetzt eine Java Datei erstellt, die mir aus einer txt Datei Zeilen einliest.
Die Zeile auf eine Bestimmte Zeichenfolge untersucht.
Diese Zeilen sich raus pickt.
Aus den gefundenen Zeilen einen Bestimmten wert auslesen, die Werte sind mit ";" voneinander getrennt, sodass ich auf einen bestimmten wert zugreifen kann.
Diese werte werden addiert und deren Anzahl gezählt.
Danach wird Die summe durch die Anzahl geteilt und ausgegeben.
Kurz gesagt, es bildet den Mittelwert.

Der Code scheint das zu tun, was ich brauche.

Die Zeichenfolge die überprüft wird, ist ein festes Datum, in dem Fall der 20.06.2008 und dahinter die Uhrzeit.
Der Code überprüft also jetzt: "20.06.2008 00:" wobei 00 die Uhrzeit ist.
Ich möchte jetzt sobald er die Uhrzeit "00:" überprüft hat mit 01: 02: usw. bis 23: weitermacht.

Kann ich jetzt den vorhandenen code so ablegen, das ich naher in meine main schreiben kann:

Überprüfe die Datei xy erst auf die Zeichenfolge 00: danach auf 01: usw.
Gibt für jede Zeile den Mittelwert aus
?

Hier der Code:
package txt;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class txt1 {

	/**
	 * @param args
	 */
	public static void main(String args) {
		float  Wert;
		Wert = 0;
		int j;
		j = 0;
		try {
			BufferedReader in = new BufferedReader(new FileReader("Pfad"));  
			String zeile = null;
			while ((zeile = in.readLine()) != null) {
				if (zeile.contains("20.06.2008 12:")){  

					StringTokenizer s = new StringTokenizer(zeile, ";", false);  
					int i;
					
					String str = "";  
					i = 0;
					
					while(s.hasMoreTokens()) {
						i = i + 1;
						s.nextToken();
						if (i==5){
							
							str = s.nextToken();
							str = str.replace(",", ".");  
							Wert = Wert + Float.parseFloat(str);
							j++;	
						}
						if (i==9){
							i = 0;
						}
						
					}
					

				}
				
				
			}
			Wert = Wert / j;
			System.out.println(Float.toString(Wert));
			
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}
Schonmal Danke für eure Antwort.

Content-Key: 204953

Url: https://administrator.de/contentid/204953

Printed on: April 19, 2024 at 21:04 o'clock

Member: Cometcola
Cometcola Apr 14, 2013 at 17:55:56 (UTC)
Goto Top
Moin,

also ich weiß nicht, ob ich dein Problem genau verstanden habe, aber du kannst doch einfach noch eine Eingabe vom Benutzer fordern. Diesen String kannst du dann abspeichern und als neue Zeichenfolge setzen.

Gruß
CC
Member: Power-Poler
Power-Poler Apr 15, 2013 at 04:57:41 (UTC)
Goto Top
Danke für deine Antwort, aber ich habe mit Hilfe eines Kollegen das Problem schon lösen können.

Habe jetzt eine txt2 mit dem obigen Code, und in der txt1 steht in der main nur noch ein Befehl drin.
Ich wollte dies einfach mal auf die weise gelöst haben, da ich jetzt eclipse verwende, und dies unterstützt wird.
Habe vorher (wie oben geschrieben, schon länger her) nur mit Noetpad++ Programmiert, und da wurde mir solche Lösungswege immer verweigert.