|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2002
Città: Monza
Messaggi: 598
|
[java] identificare coasa c'è in una stringa
ciao amici,
ho una stringa in java che potrebbe contenere: un nome, un intero, un numero con virgola oppure una percetuale del tipo "10%". Come potrei identificare con esattezza in quale caso mi trovo? ho provato a fare Double.parseDouble(stringa); e cercare di catturare l'errore ma nn ci sono ancora riuscito.... suggerimenti? grazie
__________________
Nunc est bibendum |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
- "blabla" - "12345" - "67,89" - "12%" Giusto? Come suggerimento potrei consigliarti di creare un metodo apposito che data una stringa in input, restituisce una costante intera che indica il tipo di stringa. Una cosa: il caso della stringa con virgola "67,89", lo devi poi convertire in un numero (come float/double)?
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
|
Quote:
Per le percentuali ed altre cose puoi utilizzare le espressioni regolari (java.util.regex).
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer °SetiEmperor°| Ninja Technologies { qualunque cosa sia, è veloce e fa male (cit.) } |
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Quote:
nome -> /[a-zA-Z]+/ intero -> /\d+/ float -> /\d+\.\d+/ percentuale -> /\d+%/ considerando che in java hanno una sintassi un pelino diversa (ci vogliono due \\ prima degli identificatori \d,\w, ecc...
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
|
Quote:
Codice:
boolean trovato = false; // Generico
boolean isInt = false;
boolean isFloat = false;
boolean isPercent = false;
boolean isString = false;
try { // Provo l'intero
Integer.parseInt(dato);
isInt = true;
trovato = true;
} catch(Exception e) {}
if (!trovato) try // Prova double
{
Float.parseFloat(dato);
isFloat = true;
trovato = true;
} catch (Exception e) {}
if (!trovato) try // O è string o è %
{
// Testi che finisca con %, se finisce con % provi il parseFloat, se fallisce è testo puro
// Sono di fretta, non riesco a finire ;)
} catch (Exception e) {}
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Sep 2002
Città: Monza
Messaggi: 598
|
beh,per ora mi sto accontentando di qualcosa di simile a quello che mi segnala Pinok,
in realtà, però le istruzioni le metto direttamente nel catch, va bene o potrei avere problemi? per ora mi riconosce tutto, anche " 45,66% i.d." che è una stringa che ho trovato, è una percentuale ma c'è anche dell'altro. grazie cmq per tutti gli interventi, vi ringrazio sempre poco per quel che fate.
__________________
Nunc est bibendum |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:17.



















