Hallo
Vorweg, ich bin ,was Java betrifft, leider noch ein Anfänger.
Ich habe hier ein Programm, was Meßwerte sammelt und auswertet. Unteranderem soll es eine csv Datei auslesen. Klappt soweit auch, nur das ich ein Fehler bekommme, wenn gewisse Werte höher sind als 1000. In der CSV steht 1 000,123.
Wie kann ich dieses Leerzeichen entfernen.
Mein Code sie folgendermaßen aus
Vorweg, ich bin ,was Java betrifft, leider noch ein Anfänger.
Ich habe hier ein Programm, was Meßwerte sammelt und auswertet. Unteranderem soll es eine csv Datei auslesen. Klappt soweit auch, nur das ich ein Fehler bekommme, wenn gewisse Werte höher sind als 1000. In der CSV steht 1 000,123.
Wie kann ich dieses Leerzeichen entfernen.
Mein Code sie folgendermaßen aus
Java:
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
public class DensoImporter {
private List<String> data;
private String logger;
public DensoImporter(String logger) {
this.logger = logger;
data = new ArrayList<String>();
}
/**
* Import DensoData File
*
* @param filename Dateiname
* @param densoData DensoData
* @return true bei Erfolg, ansonsten false
*/
public boolean importDenso(String filename, DensoData densoData) {
int index;
Double position;
Double value;
// Densodaten leeren
densoData.clear();
// File laden
if (!loadFile(filename))
return false;
// Daten lesen
densoData.setDickeDAX(getDouble(4, 1));
densoData.setDicke(getDouble(4, 1));
densoData.setMaxDichteLinks(getDouble(1, 5));
densoData.setMaxDichteRechts(getDouble(1, 6));
densoData.setMaxDichtePositionLinks(getDouble(1, 8));
densoData.setMaxDichtePositionRechts(getDouble(1, 9));
densoData.setAbstandMaxDichte(getDouble(1, 10));
densoData.setDichte(getDouble(1, 11));
densoData.setDichteMinMitte(getDouble(1, 12));
index = 0;
// Daten einlesen bis es einen Fehler gibt ( bis ans Ende des Files )
for (; ; ) {
// Daten holen
position = getDouble(0, 19 + index);
value = getDouble(1, 19 + index);
// value = Double.parseDouble(line[col].replace(",", "."));
index++;
// Bei einem Fehler die Schleife beenden
if ((position == null) || (value == null)) {
break;
} else {
// Daten übernehmen
densoData.addWerte(position.doubleValue(), value.doubleValue());
}
}
return true;
}
/**
* File laden
*
* @param filename Dateiname
* @return true bei Erfolg, ansonsten false
*/
private boolean loadFile(String filename) {
BufferedReader reader = null;
String line;
if(filename == null)
return false;
try {
// Daten leeren
data.clear();
// Buffered Reader erzeugen
reader = new BufferedReader(new FileReader(filename));
// alle Zeilen einlesen
while ((line = reader.readLine()) != null) {
data.add(line);
}
} catch (Exception e) {
// bei einem Fehler mit false beenden
Logger.getLogger(logger).log(Level.WARNING, e.getMessage());
return false;
} finally {
if (reader != null)
try {
reader.close();
} catch (Exception e) {
Logger.getLogger(logger).log(Level.WARNING, e.getMessage());
}
}
return true;
}
/**
* File checken und Dicke zurückgeben
*
* @param filename Dateiname
* @return true bei Erfolg, ansonsten false
*/
public Double checkFile(String filename) {
BufferedReader reader = null;
String line;
try {
// Daten leeren
data.clear();
// Buffered Reader erzeugen
reader = new BufferedReader(new FileReader(filename));
// Die ersten 5 Zeilen einlesen
for (int i = 0; i < 5; i++) {
if ((line = reader.readLine()) != null) {
data.add(line);
}
}
} catch (Exception e) {
// bei einem Fehler mit false beenden
Logger.getLogger(logger).log(Level.WARNING, e.getMessage());
return null;
} finally {
if (reader != null)
try {
reader.close();
} catch (Exception e) {
Logger.getLogger(logger).log(Level.WARNING, e.getMessage());
}
}
return getDouble(4,1);
}
/**
* Werte ermitteln
*
* @param col Spalte
* @param row Zeile
* @return bei Erfolg den Wert, ansonsten false
*/
private Double getDouble(int col, int row) {
String[] line;
Double value;
try {
// Zeile vorhanden? wenn nicht mit false beenden
if (row >= data.size())
return null;
// Zeile an Tabulatoren trennen
line = data.get(row).split(";");
// Spalte vorhanden? wenn nicht mit false beenden
if (col >= line.length)
return null;
// Wert aus String erzeugen
value = Double.parseDouble(line[col].replace(",", "."));
} catch (NumberFormatException e) {
// Bei Fehlern mit false beenden
Logger.getLogger(logger).log(Level.WARNING, e.getMessage());
return null;
}
// Wert zurückgeben
return value;
}
}