Autore Topic: [Java Parsing] String to int  (Letto 765 volte)

Offline giannign1

  • Utente junior
  • **
  • Post: 85
  • Respect: +2
    • chiedetelo_se_lo_volete
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    giannign1
  • Sistema operativo:
    Windows 7
[Java Parsing] String to int
« il: 20 Maggio 2013, 16:45:11 CEST »
0
Salve, qual é il metodo migliore per convertire una stringa contenente un numero in un int?

Preciso che non mi riferisco a stringhe che sono rappresentazioni ascii del numero (es: "13" o "-53") ma appunto che CONTENGONO un numero.

Ecco qualche esempio:

"12 Animali"            ------> 12
"Ho 3 cani"              ------> 3
"Sono il numero 4" ------> 4

Grazie,
Gianni

Offline Sakazaki

  • Utente normale
  • ***
  • Post: 396
  • Respect: +74
    • Mostra profilo
  • Dispositivo Android:
    Sony xperia Z
  • Play Store ID:
    Saka Labs
  • Sistema operativo:
    Windows 8
Re:[Java Parsing] String to int
« Risposta #1 il: 20 Maggio 2013, 16:52:16 CEST »
+2
Codice (Java): [Seleziona]
Pattern p = Pattern.compile("-?\\d+");
Matcher m = p.matcher("There are more than -2 and less than 12 numbers here");
while (m.find()) {
  System.out.println(m.group());
}
(cut&paste da stackoverflow)

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:[Java Parsing] String to int
« Risposta #2 il: 20 Maggio 2013, 17:15:17 CEST »
+3
Consiglio, se serve, di usare la regular expression "[+-]?\\d+" in modo da considerare anche il segno '+', se non serve il segno basta la regular expression "\\d+". L'oggetto "p" è meglio renderlo un attributo della classe come oggetto "final static", in questo modo viene compilata la regular expression una sola volta. Per convertire la stringa in un numero basta usare il metodo statico "String.valueOf".
adb logcat | tee /tmp/logcat | grep TAG

Offline giannign1

  • Utente junior
  • **
  • Post: 85
  • Respect: +2
    • chiedetelo_se_lo_volete
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    giannign1
  • Sistema operativo:
    Windows 7
Re:[Java Parsing] String to int
« Risposta #3 il: 20 Maggio 2013, 17:15:29 CEST »
0
Codice (Java): [Seleziona]
Pattern p = Pattern.compile("-?\\d+");
Matcher m = p.matcher("There are more than -2 and less than 12 numbers here");
while (m.find()) {
  System.out.println(m.group());
}
(cut&paste da stackoverflow)

Perfetto grazie mille!!!!! Avevo già avviato il parsing manuale.... mi hai risparmiato dallo scrivere dell'orrido codice

Immaginavo si potesse risolvere con qualche regexp ma non sono ferrato in materia


Ciao,
Gianni


EDIT: Grazie anche a iceweasel, il segno non mi interessa di prenderlo in considerazione ma sicuramente metterò la Pattern come field statico.....grazie ad entrambi
« Ultima modifica: 20 Maggio 2013, 17:17:24 CEST da giannign1 »