[Java] Problem z usunięciem spacji z stringa


(Sebastianp88) #1

Witam wszystkich. Problem jest taki jak w tytule. Poniżej zamieszczam fragment kodu oraz krótki opis:

String numberTxt = residentDetails.getWynik();

                    numberTxt = numberTxt.replace(",", ".");

                    Double number = Double.valueOf(numberTxt);

Dane są pobierane z pliku bazodanowego w formacie dbf (stary jak świat ale jeszcze niestety używany format). W każdym razie sama opcja zamiany przecinka na kropkę działa. Niestety gdy dodam wariant dotyczący usunięcia spacji

String numberTxt = residentDetails.getWynik();

                    numberTxt = numberTxt.replace(",", ".").replace(" ", "");

                    Double number = Double.valueOf(numberTxt);

lub też:

String numberTxt = residentDetails.getWynik();

                    numberTxt = numberTxt.replace(",", ".");

                    numberTxt = numberTxt.replace(" ", "");

                    Double number = Double.valueOf(numberTxt);

program w żaden sposób nie chce usunąc spacji. Komunikat błedu wygląda następująco:

Będę wdzięczny za pomoc w rozwiązaniu tego błachego problemu.


(Razi) #2

Metody replaceAll próbowałeś? Może jest spacja przed tym stringiem.

Po każdym replace wyświetl sobie całego stringa razem z długością, żeby wiedzieć czy coś się zmieniło.


(Yuri20) #3

Trochę chałupniczy sposób, ale może spróbuj podzielić tekst za pomocą metody "split" ze względu na spację, a potem dodać do siebie powstałe stringi.


(Airborn) #4

Bardziej uniwersalnym rozwiązaniem będzie wykorzystanie specjalnie do tego celu stworzonych klas formaterów: NumberFormat czy DecimalFormat. Ponieważ jednak ich działanie jest zależne od ustawionego w systemie Locale, a i dla polskiego Locale zdaje się separator grupujący jest jakoś dziwnie ustawiony trzeba lekko skonfigurować tę klasę w taki sposób: http://ideone.com/1oGe8