Wyszukiwanie wartosc w stringu

0

Cześć,

mam plik struktury:

Samochod=Opel,Model=Asta,Pojemnosc=1600,Drzwi=5;
Samochod=Ford,Model=Focus,Pojemnosc=1900,Drzwi=5;

itd...

Potrzebuje z tego odczytac tylko ilosc drzwi z poszczegolnych, nic wiecej. Napisałem coś takiego:

public class Test {
    private static final Pattern DEFAULT_VALUE_PATTERN = Pattern
            .compile("()(\\d+);");

    private static Vector<Integer> extractDefaultValueFrom(String text) {
        String[] modelArray = text.split("\n");
        Vector<Integer> door = new Vector<>();
        for (int i = 0; i < modelArray.length; i++) {
            Matcher matcher = DEFAULT_VALUE_PATTERN.matcher(modelArray[i]);
            if (matcher.find()) {
                String temp = matcher.group().substring(0,
                        matcher.group().length() - 1);
                door.add(Integer.parseInt(temp));

            }
        }
        return door;
    }

    public static void main(String[] args) {
        String model = "Samochod=Opel,Model=Asta,Pojemnosc=1600,Drzwi=5;\nSamochod=Ford,Model=Focus,Pojemnosc=1900,Drzwi=4;\n";
        for (Integer x : extractDefaultValueFrom(model))
            System.out.println(x);
    }
}

Kod jest ok czy moglbym jakos to poprawic ?
Prosze o wskazowki :-)

1

http://www.mkyong.com/java/how-to-read-and-parse-csv-file-in-java/
Czyli generalnie operacjach na plikach csv

0

Dzięki :) i tak bym zrobił ale akurat nie przyda mi się tym razem bo mam zmienną ilość danych w tekście (jednym wierszu) - z tym że zawsze kończy się na ilości drzwi i znaku ; i wczytuje tylko jedna wartość.

Inny pomysł to szukanie przez indexOf i ograniczaniu do średnika ale kiepsko będzie to wyglądało raczej.

0

Jeśli zawsze kończy się czymś takim drzwi=nnnn; to ja bym spróbował n=lastIndexOf("=") oraz indexOf(";",n).

1 użytkowników online, w tym zalogowanych: 0, gości: 1