Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-12-2007, 15: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, 15: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, 15:51   #3
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 15: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, 16:06   #5
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 16: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, 16:19   #7
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 16: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, 16:36   #9
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 16: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, 16: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, 16:53   #12
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 16: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 16:59. Motivo: ops...
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 12-12-2007, 19: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, 10: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, 10:59   #16
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
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, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2007, 11: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, 11: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, 11: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


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Taglio delle accise sul gasolio prorogat...
Universal e ElevenLabs: una piattaforma ...
Astra mette in crisi i server di OpenAI:...
Phanteks EX5: disponibile il case a bloc...
Broadcom rimuove l'accesso a uno strumen...
Italo porta Starlink sui treni ad Alta V...
Le GPU costano sempre di più, ma ...
IBM e NASA hanno insegnato a un'IA a leg...
Desktop Remoto non funziona su Windows S...
Offerte Amazon del giorno: da AirPods 5 ...
Motorola anticipa la sua prossima mossa ...
La manovra di Picard di Star Trek funzio...
EA Sports FC 27, pubblicata su Spotify l...
NSBProject misura quanto una startup &eg...
Instagram permette ora di aggiungere all...
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: 14:03.


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