# Double aus String auslesen



## dennisT (11. Mrz 2015)

Hi, ich habe ein Programm, welches eine Textdatei einliest und in jeder Zeile befindet sich eine Zahl mit 2 Nachkommastellen. Mein Programm sieht momentan so aus:


```
try{
      
      BufferedReader eingabeConfig;
      eingabeConfig = new BufferedReader( new FileReader("werte.txt"));
      String zeile;
      int i = 0;   
      
      while ((zeile = eingabeConfig.readLine()) != null) {
        Pattern p = Pattern.compile("[+-]?[0-9]+");
        Matcher m = p.matcher(zeile);
        
        while ( m.find() ) {
          System.out.println(zeile.substring(m.start(), m.end()));
        }
        i++; 
      }
      //System.out.println(ausgabe);
      eingabeConfig.close();
    }
```

Er macht halt z.B. aus 12,50 2 Zahlen (12 und 50). Wie bekomme ich es hin, dass es sie als Double einliest?


----------



## Thallius (11. Mrz 2015)

Du liest eine Zeile ein und benutzt dann Double.parseDouble()

Gruß

Claus


----------



## dennisT (11. Mrz 2015)

Hi, danke für die Antwort.
Also das Problem ist, dass pro Zeile ein ganzer Satz steht und mittendrin die Zahl. Dadurch kommt es mit Double.parseDouble() zu Fehlern.


----------



## Thallius (11. Mrz 2015)

Dann solltest du die Zahl erstmal aus der Zeile extrahieren.


----------



## dennisT (11. Mrz 2015)

Thallius hat gesagt.:


> Dann solltest du die Zahl erstmal aus der Zeile extrahieren.



Ja das ist ja mein Problem, das wollte ich aber er teilt sie. Bei 12,50 macht er zwei. 12 und 50. Möchte es aber gerne direkt richtig bekommen als "12,50".


----------



## Thallius (11. Mrz 2015)

Woher weist du denn das die Zahl überhaupt da ist? Es kann ja auch sein das im Text eine Zahl vorkommt oder nicht? Ohne zu wissen wie deine Zeilen aussehen kann man dir nicht helfen


----------



## dennisT (11. Mrz 2015)

Thallius hat gesagt.:


> Woher weist du denn das die Zahl überhaupt da ist? Es kann ja auch sein das im Text eine Zahl vorkommt oder nicht? Ohne zu wissen wie deine Zeilen aussehen kann man dir nicht helfen


Jede Zeile sieht so aus : 





> <span  class="bold bidsold"><b>EUR</b> 12,50</span>


Nur jeweils mit einer anderen Zahl


----------



## Thallius (11. Mrz 2015)

Mal davon abgesehen das es Quatsch istveine HTML Datei zu parsen, da sich die jederzeit ändern können ist es doch total einfach. Du suchst einfach nach </b> und nimmst danach alle Zeichen bis zum </span>


----------



## CSHW89 (11. Mrz 2015)

Anscheinend hattest du doch schon quasi die Lösung, nur für Integer:
Pattern.compile("[+-]?[0-9]+")
Ändere den Regex einfach für Double-Zahlen, also z.b.:
Pattern.compile("[+-]?[0-9]+,[0-9]*")

lg Kevin


----------

