Hallo,
ich möchte eine externe Datei einlesen und in einem double[][] speichern. Die Datei ist so folgendermaßen aufgebaut:
1 2 R 3.4
1 3 L 2.3
Das Problem: Die Buchstaben lassen sich in meiner bisherigen Lösung nicht einlesen (Double.parse Double Befehl):
Nun habe ich überlegt, den StringBuffer zunächst in einen String zu konvertiern, dann von einem String in Double.
So klappt es aber leider auch nicht.
Ich habe danach mal testweise den String zunächst in einen Char gewandelt, und von Char dann nach Double.
Das klappt, aber so würde er mir bei den Zahlen alle Nachkommastellen wegnehmen.
Wäre toll, wenn mir einer helfen würde!
Liebe Grüße Silver
ich möchte eine externe Datei einlesen und in einem double[][] speichern. Die Datei ist so folgendermaßen aufgebaut:
1 2 R 3.4
1 3 L 2.3
Das Problem: Die Buchstaben lassen sich in meiner bisherigen Lösung nicht einlesen (Double.parse Double Befehl):
Code:
public Einlesen (int zeilen, int spalten){
//Einlesen der Daten aus der Datei "input.txt"
int i = 0;
inputmatrix = new double [zeilen][spalten];
try {
FileReader fr = new FileReader ("input.txt");
BufferedReader br = new BufferedReader (fr);
String line;
while ((line = br.readLine())!= null) {
String[] items = line.split(" ");
for (int j = 0; j < items.length; j++) {
try {
inputmatrix[i][j] = Double.parseDouble(items[j]);
}
catch (NumberFormatException e) {
System.out.println("Fehler beim Einlesen der Datei");
System.exit(-1);
}
}
if (++i == zeilen)
break;
}
}
catch (IOException e){
System.out.println ("Datei kann nicht geöffnet werden! " +e);
}
}
Nun habe ich überlegt, den StringBuffer zunächst in einen String zu konvertiern, dann von einem String in Double.
Code:
...
while ((line = br.readLine())!= null) {
String[] items = line.split(" ");
for (int j = 0; j < items.length; j++) {
try {
StringBuffer sb = new StringBuffer(items[j]);
items[j] = new String(sb);
items[j] = sb.toString();
System.out.println(sb);
double d = Double.valueOf(items[j].trim()).doubleValue();
System.out.println(d);
...
So klappt es aber leider auch nicht.
Ich habe danach mal testweise den String zunächst in einen Char gewandelt, und von Char dann nach Double.
Code:
String s = "R";
System.out.println(s);
char[] c = s.toCharArray();
char c = s.charAt(0);
System.out.println(c);
double d = Double.valueOf(s);
System.out.println(d);
char cc = (char)d;
System.out.println (cc);
Das klappt, aber so würde er mir bei den Zahlen alle Nachkommastellen wegnehmen.
Wäre toll, wenn mir einer helfen würde!
Liebe Grüße Silver