# Zahl aus einem String finden und als Integer speichern



## nuller (29. Jun 2007)

Habe wieder ein Problem, bei dem ich nicht weiter komme.
Habe diverse Strings. Alle Strings haben gleich, dass Sie eine in Klammer stehende Zahl haben. Zum Beispiel

"Ich bin einer der (88) vielen Strings"

An diese Zahl möchte ich gerne kommen.
Meine Idee bisher ist, dass ich den String einmal trenne bei "(" und danach nochmal bei ")" und dann versuche mit
Integer.valueOf(st.nextToken()).intValue();
zu schauen ob es sich in eine Integerzahl umwandeln lässt.
Dummerweiße kann der String aber auch Klammern beinhalten, in denen keine Zahlen vorhanden sind.
Und deshalb habe ich sehr viele Error Meldungen.

Ausserdem gefällt mir meine Methode überhaupt nicht. 
Hat wer ne bessere Idee?

DANKE!


----------



## The_S (29. Jun 2007)

Springe zur nächsten offnen Klammer. Gehe ein Zeichen weiter. Überprüfe ob Zahl. Falls ja alles in den klammern parsen. falls nein ignorieren. Springe zur nächsten offenen Klammer, ...


----------



## André Uhres (29. Jun 2007)

```
int zahl = 0;
        String subjectString = "Ich bin einer der (88) vielen Strings";
        Pattern regex = Pattern.compile("\\(\\d+\\)");
        Matcher matcher = regex.matcher(subjectString);
        if (matcher.find()) {
            String str = matcher.group();
            zahl = Integer.parseInt(str.substring(1, str.length()-1));
        }
        System.out.println(zahl);
```


----------



## nuller (29. Jun 2007)

Wow, das ging ja fix.

Pattern sind genau das was ich gesucht habe.
Danke für den Quellcode, habe ich 1 zu 1 übernehmen können und läuft 1A 

Thanks


----------

