Torna indietro   Hardware Upgrade Forum > Software > Programmazione

6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026
Al MWC Qualcomm annuncia una coalizione industriale per lanciare il 6G entro il 2029 e introduce agenti IA per la gestione autonoma della RAN. Ericsson, presente sul palco, conferma la direzione: le reti del futuro saranno IA-native fin dalla progettazione
CHUWI CoreBook Air alla prova: design premium, buona autonomia e qualche compromesso
CHUWI CoreBook Air alla prova: design premium, buona autonomia e qualche compromesso
CHUWI CoreBook Air è un ultraleggero da 1 kg con Ryzen 5 6600H, display 14" 16:10 e 16 GB LPDDR5. Offre buona portabilità, autonomia discreta e costruzione in alluminio, ma storage PCIe 3.0 e RAM saldata limitano l'espandibilità. A 549 euro sfida brand più noti nella stessa fascia di mercato.
Roborock Saros 20: il robot preciso e molto sottile
Roborock Saros 20: il robot preciso e molto sottile
Il nuovo robot di Roborock per l'aspirazione della polvere e il lavaggio dei pavimenti spicca per immediatezza d'uso e per l'efficacia dell'azione, grazie anche a un ridotto sviluppo in altezza. Saros 20 integra un motore da ben 36.000Pa di potenza e un sistema di lavaggio a due panni rotanti, con bracci estensibili e un sistema di navigazione molto preciso.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-05-2006, 11:46   #1
gaglioppo
Senior Member
 
L'Avatar di gaglioppo
 
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
gaglioppo è offline   Rispondi citando il messaggio o parte di esso
Old 09-05-2006, 13:34   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da gaglioppo
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?
Quindi riepiloghiamo. Puoi avere:
- "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%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 09-05-2006, 14:13   #3
Angus
Senior Member
 
L'Avatar di Angus
 
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
Quote:
Originariamente inviato da gaglioppo
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
Per gli interi e i numeri con virgola sei sulla strada giusta, sempre che tu intenda attenerti allo standard Java sul formato dei numeri. Cos'è che non riesci a fare utilizzando Double.parseDouble(s)?
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.) }
Angus è offline   Rispondi citando il messaggio o parte di esso
Old 09-05-2006, 14:17   #4
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Quote:
Originariamente inviato da Angus
Per le percentuali ed altre cose puoi utilizzare le espressioni regolari (java.util.regex).
Io utilizzerei le regex per tutto:
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...
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 09-05-2006, 14:18   #5
pinok
Senior Member
 
Iscritto dal: Jun 2001
Città: Alessandria (provincia)
Messaggi: 4772
Quote:
Originariamente inviato da gaglioppo
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
Devi lavorarci con un po' di if e try catch; siccome credo che un po' di try catch annidati potrebbero rallentare un filino, io farei:
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) {}
pinok è offline   Rispondi citando il messaggio o parte di esso
Old 09-05-2006, 20:43   #6
gaglioppo
Senior Member
 
L'Avatar di gaglioppo
 
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
gaglioppo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026 6G, da rete che trasporta dati a rete intelligen...
CHUWI CoreBook Air alla prova: design premium, buona autonomia e qualche compromesso CHUWI CoreBook Air alla prova: design premium, b...
Roborock Saros 20: il robot preciso e molto sottile Roborock Saros 20: il robot preciso e molto sott...
ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm ASUS ROG Kithara: quando HIFIMAN incontra il gam...
Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Roscosmos ha annunciato il ripristino de...
Monarch: se usi più di due scherm...
Microsoft espande la sua offerta di clou...
Traffico di licenze Windows e Office: ar...
'Sembra stia defecando': il creatore di ...
Akamai: zero trust su tecnologia NVIDIA ...
Apple presenta il MacBook Air con chip M...
Memorie e chip cinesi nel mirino degli U...
Apple presenta il MacBook Pro con M5 Pro...
Apple rinnova la linea monitor: arrivano...
M5 Pro e M5 Max ufficiali: i chip Apple ...
World of Warcraft: Midnight è adesso dis...
NVIDIA: i nuovi driver limitano le tensi...
La tua azienda è conforme all'AI ...
Recensione HONOR MagicPad 4: il tablet p...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:09.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v