Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
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
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 developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
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
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 developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
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
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 developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
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
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 developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
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
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 developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
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
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 developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
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


Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
L’ex CEO di Intel Gelsinger punta su una...
Techly, quattro nuovi supporti TV fra mo...
Mass Effect sacrificato per Star Wars: i...
Gemini, addio al copia e incolla per cor...
13 miliardi per un colpo di stato? NVIDI...
L'agente AI Wabi crea mini-app su misura...
Edge è il primo browser a supportare Acc...
L'IA di Firefox ora compila i moduli da ...
Tracking pixel nelle email: cosa cambia ...
La GeForce RTX 5080 da 24 GB potrebbe ar...
Apple mette alle strette OpenAI, la caus...
Xbox ancora in calo: ecco com'è a...
Car of the Year 2027: sette finaliste e ...
Google Beam cambia tutto: arrivano le vi...
Curry Barker, il regista di Obsession, 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: 19:07.


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