Ciao, grazie mille per la risposta esauriente. Mi sento in dovere di darti delle spiegazioni. Dunque, lo scopo di un altro mio programma è quello di avviare una telefonata inserendo il numero di telefono in una web form. Ovviamente, per ridurre i tempi di inserimento del numero, un utente potrebbe trovare il numero di telefono in un altro sito web e decidere di copiarlo, solo che nei siti web i numeri di telefono sono scritti come nell'esempio sopra o separati da - o /. Per avviare la telefonata devo inviare il numero telefonico sotto forma di stringa a un PBX software e devo avere una stringa telefonicamente "valida", ovvero, senza spazi o caratteri speciali. A questo punto prima elimino i caratteri tipo / o - e converto il + in 00 per ottenere la stringa telefonicamente valida, poi opero la conversione in long esclusivamente per vedere se la stringa contiene solo numeri. Se l'operazione fallisce, vuol dire che il numero telefonico non è valido e quindi non parte la chiamata; se invece il numero telefonico è valido, allora la chiamata può partire e invio quindi la stringa telefonica corretta. Per questo non mi interessa se l'operazione di conversione da stringa a numero si "mangia" gli 0 iniziali, tanto mi serve solo per un confronto e nulla più!Originariamente inviato da valia
una considerazione: da dove prendi la stringa? Tu supponi che la suddivisione venga fatta per /, - oppure blank, ma sei in grado di fissare un formato standard (es separatore blank) e lavorare su quello?
In tal caso la stesura dell'algoritmo è molto più semplice.
Poi in generale se è un numero di telefono, puoi
+39 0123 4567
e fin qui ti trovi a lavorare concodice:StringBuffer buffer = new StringBuffer(""); if (str.startsWith("+39")){ str = str.substring(3).trim(); buffer.append("00"); }
0123 4567
e hai in buffer già 00
poi fai uno split per blank
e in buffer hai alla finecodice:String tmp[] = str.split(" "); if (tmp != null && tmp.length > 0){ for (String tmps : tmp) buffer.append(tmps); }
0001234567
poi non so che senso abbia un numero di telefono convertito in intero (al max long), in genere lo si lascia in formato stringa visto che in questo caso ti perderesti lo 0 iniziale del numero
Ciao e ancora grazie a tutti!![]()


Rispondi quotando