Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Renault Twingo E-Tech Electric: che prezzo!
Renault Twingo E-Tech Electric: che prezzo!
Renault annuncia la nuova vettura compatta del segmento A, che strizza l'occhio alla tradizione del modello abbinandovi una motorizzazione completamente elettrica e caratteristiche ideali per i tragitti urbani. Renault Twingo E-Tech Electric punta su abitabilità, per una lunghezza di meno di 3,8 metri, abbinata a un prezzo di lancio senza incentivi di 20.000€
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Nel Formula 1 Technology and Media Centre di Biggin Hill, la velocità delle monoposto si trasforma in dati, immagini e decisioni in tempo reale grazie all’infrastruttura Lenovo che gestisce centinaia di terabyte ogni weekend di gara e collega 820 milioni di spettatori nel mondo
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
Il nuovo gimbal mobile DJI evolve il concetto di tracciamento automatico con tre modalità diverse, un modulo multifunzionale con illuminazione integrata e controlli gestuali avanzati. Nel gimbal è anche presente un'asta telescopica da 215 mm con treppiede integrato, per un prodotto completo per content creator di ogni livello
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-12-2007, 16:32   #1
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
[JAVA] Formattazione delle stringhe

ragazzi, devo formattare una stringa in questo modo:
Codice:
X00-Y00\n
ovvero carattere, due cifre, trattino, carattere 2 cifre e poi il simbolo di "accapo", che se non ricordo male si fà \n

pensavo a creare una maschera, oppure a riempire un vettore....ma spero che ci sia qualcosa nelle librerie (che non trovo).....chi mi aiuta???
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 16:41   #2
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
ho trovato in giro per le api (ritrovate ) la classe Formatter....credo di non aver capito appieno come funziona, ma ora provo.....comunque se qualcuno ha suggerimenti
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 16:51   #3
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Da Java 5 la classe String (e alcune altre classi di I/O) ha il metodo format() che fa uso internamente di un Formatter (che è la classe che fornisce appunto queste funzionalità di formattazione).
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 16:54   #4
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
Quote:
Originariamente inviato da andbin Guarda i messaggi
Da Java 5 la classe String (e alcune altre classi di I/O) ha il metodo format() che fa uso internamente di un Formatter (che è la classe che fornisce appunto queste funzionalità di formattazione).
infatti, l'ho letto ma non ho ben capito come funziona......cioè, sto provando a farlo funzionare ma non mi và
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 17:06   #5
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da franksisca Guarda i messaggi
infatti, l'ho letto ma non ho ben capito come funziona
Te lo scrivo io ma dovrei capire meglio che dati (e tipi) devi mettere. Cioè con cosa parti.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 17:11   #6
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
allora, la mia situazione è questa:

io devo inviare una stringa così comp'osta(non mi interessa il tipo di dati che la compongono)

Carattere numero numero - carattere numero numero \n

ovvero qualcosa del tipo A12-V75\n (dovrò fare dei controlli sui caratteri, ma non ci riguarda al momento )

ecco, il mio problema è questo:

se io mando A8-B25\n
oppure B3.c27\n voglio che me li corregga in automatico.....speravo che il format delle string mi potesse aiutare, ma mentre lo uso mi assale il dubbio che ciò non sia possibile, spero che tu possa contraddirmi
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 17:19   #7
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da franksisca Guarda i messaggi
io devo inviare una stringa così comp'osta(non mi interessa il tipo di dati che la compongono)

Carattere numero numero - carattere numero numero \n
Ok, ma quello che vorrei capire io è se ad esempio tu parti con l'avere 1 char, 1 int, 1 char, 1 int semplicemente da formattare. In tal caso puoi fare:

String s = String.format ("%c%02d-%c%02d\n", ch1, num1, ch2, num2);

Quote:
Originariamente inviato da franksisca Guarda i messaggi
se io mando A8-B25\n
oppure B3.c27\n voglio che me li corregga in automatico
Correggerli in che modo?? Ad esempio mettendo uno 0 in modo che A8 diventi A08??

Scusa se sono un po' vago ma in genere devo prima capirle le cose ....
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 17:23   #8
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
Quote:
Originariamente inviato da andbin Guarda i messaggi
Ok, ma quello che vorrei capire io è se ad esempio tu parti con l'avere 1 char, 1 int, 1 char, 1 int semplicemente da formattare. In tal caso puoi fare:

String s = String.format ("%c%02d-%c%02d\n", ch1, num1, ch2, num2);

Correggerli in che modo?? Ad esempio mettendo uno 0 in modo che A8 diventi A08??

Scusa se sono un po' vago ma in genere devo prima capirle le cose ....
no, figurati, anzi grazie per la disponibilità, ancora una volta sei gentilissimo.

si intendevo correggerli in quel modo.......purtroppo la stringa la prendo per intero, quindi

String s = String.format ("%c%02d-%c%02d\n", ch1, num1, ch2, num2);
non posso usarlo
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 17:36   #9
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da franksisca Guarda i messaggi
si intendevo correggerli in quel modo.......purtroppo la stringa la prendo per intero
Quindi, se ho capito bene, non devi formattare una stringa (comporla) ma verificare se corrisponde ad un determinato "pattern" e magari estrarre i dati e correggerli.

Se è così, allora puoi usare le espressioni regolari, ma bisognerebbe vedere meglio cosa vuoi che sia accettabile o meno. Mi spiego meglio: se ti arriva 789-B25\n, devi correggerlo? (e come?) E se ti arriva A9;C5\n?
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 17:37   #10
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
rettifica, l'ho provato e funziona......o meglio, fa quello che dico io solo se gli passo i 4 vaolri, quindi, a questo punto, mi conviene creare un parser ad hoc e il gioco è fatto

p.s.: mi spieghi una cosa, please..

tratto dalle api
%[argument_index$][flags][width][.precision]conversion
mentre tu usi solo %c....allora perchè il primo%c riconosce ch1 e così via gli altri ???
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 17:39   #11
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
Quote:
Originariamente inviato da andbin Guarda i messaggi
Quindi, se ho capito bene, non devi formattare una stringa (comporla) ma verificare se corrisponde ad un determinato "pattern" e magari estrarre i dati e correggerli.
ESATTO!!!!!!

visto, la mia dialetttica migliora ogni giorno di più lol

ehehe....quasi quasi mi butto sulle espressioni regolari....anche se credo che non sia necessario.......mi rispondi alla domanda di prima please
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 17:53   #12
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da franksisca Guarda i messaggi
tratto dalle api
%[argument_index$][flags][width][.precision]conversion
mentre tu usi solo %c....allora perchè il primo%c riconosce ch1 e così via gli altri ???
Le parti tra [ ] indicate nella sintassi sono opzionali, è invece importante che uno specificatore di formato inizi con % e termini con un carattere che indica il tipo di conversione. Quindi %c indica un carattere (ch1), %02d indica un intero (2 digit con zeri davanti) ecc....

Quote:
Originariamente inviato da franksisca Guarda i messaggi
quasi quasi mi butto sulle espressioni regolari....anche se credo che non sia necessario.......
No, in effetti non è strettamente necessario usare le espressioni regolari. Basterebbe estrarre i singoli caratteri e verificare se sono ciò che ti aspetti.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 17:58   #13
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Sempre dai javadocs...

Quote:
Originariamente inviato da franksisca Guarda i messaggi
rettifica, l'ho provato e funziona......o meglio, fa quello che dico io solo se gli passo i 4 vaolri, quindi, a questo punto, mi conviene creare un parser ad hoc e il gioco è fatto

p.s.: mi spieghi una cosa, please..

tratto dalle api
%[argument_index$][flags][width][.precision]conversion
mentre tu usi solo %c....allora perchè il primo%c riconosce ch1 e così via gli altri ???
Perchè secondo la documentazione ci sono 3 modi per indicizzare gli argomenti passati:

Quote:
Argument Index

Format specifiers can reference arguments in three ways:

* Explicit indexing is used when the format specifier contains an argument index. The argument index is a decimal integer indicating the position of the argument in the argument list. The first argument is referenced by "1$", the second by "2$", etc. An argument may be referenced more than once.

For example:

formatter.format("%4$s %3$s %2$s %1$s %4$s %3$s %2$s %1$s",
"a", "b", "c", "d")
// -> "d c b a d c b a"


* Relative indexing is used when the format specifier contains a '<' ('\u003c') flag which causes the argument for the previous format specifier to be re-used. If there is no previous argument, then a MissingFormatArgumentException is thrown.

formatter.format("%s %s %<s %<s", "a", "b", "c", "d")
// -> "a b b b"
// "c" and "d" are ignored because they are not referenced


* Ordinary indexing is used when the format specifier contains neither an argument index nor a '<' flag. Each format specifier which uses ordinary indexing is assigned a sequential implicit index into argument list which is independent of the indices used by explicit or relative indexing.

formatter.format("%s %s %s %s", "a", "b", "c", "d")
// -> "a b c d"



It is possible to have a format string which uses all forms of indexing, for example:

formatter.format("%2$s %s %<s %s", "a", "b", "c", "d")
// -> "b a a b"
// "c" and "d" are ignored because they are not referenced


The maximum number of arguments is limited by the maximum dimension of a Java array as defined by the Java Virtual Machine Specification. If the argument index is does not correspond to an available argument, then a MissingFormatArgumentException is thrown.
Ciao

EDIT:
Ops, sorry, nn ho visto il post di Andbin e il mio si è "accavallato" al suo :P

Ultima modifica di banryu79 : 12-12-2007 alle 17:59. Motivo: ops...
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 20:52   #14
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
grazie ragazzi, gentilissimi come come sempre....se ho problemi vi faccio sapere
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2007, 11:44   #15
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
Quote:
Originariamente inviato da andbin Guarda i messaggi
Quindi %c indica un carattere (ch1), %02d indica un intero (2 digit con zeri davanti) ecc....
l'ecc non riesco a trovare....ovvero, come faccio a riconoscere il tipo???

c=char
d= digit(int o anche il resto dei "numeri"??)

poi ne esistono altri???
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2007, 11:59   #16
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da franksisca Guarda i messaggi
poi ne esistono altri???
Sono tutti spiegati molto ben in dettaglio nella documentazione della classe java.util.Formatter.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2007, 12:01   #17
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
Quote:
Originariamente inviato da andbin Guarda i messaggi
Sono tutti spiegati molto ben in dettaglio nella documentazione della classe java.util.Formatter.
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2007, 12:04   #18
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
eccoli.....
Codice:
'b', 'B'  	 general 	 If the argument arg is null, then the result is "false". If arg is a boolean or Boolean, then the result is the string returned by String.valueOf(). Otherwise, the result is "true".
'h', 'H' 	general 	If the argument arg is null, then the result is "null". Otherwise, the result is obtained by invoking Integer.toHexString(arg.hashCode()).
's', 'S' 	general 	If the argument arg is null, then the result is "null". If arg implements Formattable, then arg.formatTo is invoked. Otherwise, the result is obtained by invoking arg.toString().
'c', 'C' 	character 	The result is a Unicode character
'd' 	integral 	The result is formatted as a decimal integer
'o' 	integral 	The result is formatted as an octal integer
'x', 'X' 	integral 	The result is formatted as a hexadecimal integer
'e', 'E' 	floating point 	The result is formatted as a decimal number in computerized scientific notation
'f' 	floating point 	The result is formatted as a decimal number
'g', 'G' 	floating point 	The result is formatted using computerized scientific notation or decimal format, depending on the precision and the value after rounding.
'a', 'A' 	floating point 	The result is formatted as a hexadecimal floating-point number with a significand and an exponent
't', 'T' 	date/time 	Prefix for date and time conversion characters. See Date/Time Conversions.
'%' 	percent 	The result is a literal '%' ('\u0025')
'n' 	line separator 	The result is the platform-specific line separator
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2007, 12:40   #19
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Cmq ringrazio Andbin perchè anche io, come Franksisca, stavo cercando un sistema per formattare delle coordinate (memorizzate come double risultati di calcoli trigonometrici) per stamparle come testo in un file di istruzioni da inviare a un CN...

Le ho provate di tutte prima di leggere questo thread e scoprire String.format() e la classe Formatter

Thanks
banryu79 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Renault Twingo E-Tech Electric: che prezzo! Renault Twingo E-Tech Electric: che prezzo!
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce Recensione Pura 80 Pro: HUAWEI torna a stupire c...
Opera Neon: il browser AI agentico di nuova generazione Opera Neon: il browser AI agentico di nuova gene...
Snap e Perplexity unite: dal prossimo an...
La Cina dice addio a NVIDIA? Il governo ...
Microlino, simbolo italiano della mobili...
Apple disattiverà la sincronizzaz...
Google lancia l'allarme: attenzione ai m...
Primo test drive con Leapmotor B10: le c...
'Non può essere un robot': l'uman...
Monopattino elettrico Segway Ninebot Max...
Syberia Remastered è disponibile:...
Sony scopre che tutti i modelli AI hanno...
Amazon nasconde un -15% su 'Seconda Mano...
Due occasioni Apple su Amazon: iPhone 16...
Verso la fine della TV tradizionale? I g...
Cassa JBL a 39€, portatili, smartphone, ...
Cometa interstellare 3I/ATLAS: la sonda ...
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: 02:07.


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