Ich schreibe ein Programm in Java, das über jede Zeile einer Textdatei iteriert, diese Textdatei enthält Zahlen, die sich in einer separaten Zeile befinden. Ich habe das Programm erfolgreich dazu gebracht, jede Zeile zu lesen und in eine neue Datei zu drucken.Wie kann ich den Durchschnitt der Zeilen in dieser Datei drucken?
Ich versuche jedoch, den Durchschnitt dieser Zahlen auf die neue Datei zu drucken, ich verstehe, dass ich jede Zeile als float oder double behandeln müsste (da ich Dezimalzahlen verwende), aber ich ' Ich bin mir nicht sicher, wie ich das machen soll, das ist es, was ich bisher habe.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
public class Run {
public static void main(String[] args) throws Exception {
Write(); //call Write method
}
public static void Write() throws Exception {
String line, lineCut;
BufferedReader br = null; //initialise BR- reads text from file
BufferedWriter bw = null; //initialise BR- writes text to file
try
{
br = new BufferedReader(new FileReader("/Users/jbloggs/Documents/input.txt")); //input file
bw = new BufferedWriter(new FileWriter("/Users/jbloggs/Desktop/output.txt")); //output file
line = br.readLine(); // declare string equal to each line
while(line != null) { // iterate over each line
lineCut = line.replaceAll(";" , ","); // replace ; with ,
//lineCut = line.substring(1, line.length());
//int mynewLine = Integer.parseInt(lineCut);
bw.write(lineCut); // write each line to output file
bw.write("\n"); // print each line on a new line
line = br.readLine();
}
System.out.println("success"); //print if program works
br.close();
bw.close();
}
catch(Exception e){
throw(e); // throw exception
}
}
}
siehe Double.parseDouble (String) oder Float.parseFloat (String) – ControlAltDel
Geben Sie ein Beispiel für die Eingabe an. Enthält jede Zeile eine einzelne Nummer? (Nicht sicher, warum Sie in einem solchen Fall '.replaceAll' machen). Stellen Sie die Linie konzeptionell so ein, dass Sie Token für jedes Element in der Linie haben. Verwenden Sie 'Double.parseDouble' oder ähnlich, um den numerischen Wert zu erhalten. Fügen Sie es einem Akkumulator hinzu. Berechnen Sie den Mittelwert. – KevinO