import java.io.*;
import java.util.*;
public class Main {
public static void main(String args[]) throws IOException {
int count = 0;
double sum = 0.0;
// Zapisuje dane wyjściowe w pliku tekstowym.
FileWriter fout = new FileWriter("test.txt");
// Wartości są teraz umieszczane na liście oddzielonej przecinkami.
fout.write("2, 2.3, 2, gotowe");
fout.close();
FileReader fin = new FileReader("test.txt");
Scanner src = new Scanner(fin);
// Ustawia zbiór separatorów złożony z przecinka i spacji.
src.useDelimiter(", *");
// Odczytuje i sumuje liczby.
while(src.hasNext()) {
if(src.hasNextDouble()) {
sum += src.nextDouble();
count++;
}
else {
String str = src.next();
if(str.equals("gotowe")) break;
else {
System.out.println("Błąd");
return;
}
}
}
src.close();
System.out.println("Średnia wynosi " + sum / count);
}
}
Problem w tym, że to nie działa. Jeśli usunę sobie 2.3 z FileWriter to wszystko jest ok. Przecież w Javie double są zapisywane z kropką więc o co chodzi. Tak w ogóle to przykład z książki :)