|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jul 2008
Messaggi: 21
|
[Java] Formattare stringa
Avrei la necessità di formattare dei campi da scrivere in un file txt a tracciato fisso, che devono avere degli zeri non significativi a sinistra per tutta la lunghezza del campo.
Es: il campo è lungo 5 byte, il contenuto è 95 e deve diventare 00095. Aiuto!! Come faccio???? Grazie!!! Silvia |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
Quote:
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
|
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Jul 2008
Messaggi: 21
|
Sono stringhe che leggo da un db
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
se sono "stringhe", ma contengono interi e tu puoi trattarli come tali allora basta fare così:
Codice:
PrintWriter pw = new PrintWriter(new FileWriter("ciao.txt")); String myFormat = "%1$05%d%n"; // %0 <- padding di zero // 5 <- lunghezza totale // %d <- formatta intero // %n <- "\n" pw.format(myFormat, 1); pw.format(myFormat, 12); pw.format(myFormat, 123); pw.format(myFormat, 1234); pw.format(myFormat, 12345); pw.format(myFormat, 123456); pw.close(); ![]()
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
![]() |
![]() |
![]() |
#5 | |
Junior Member
Iscritto dal: Jul 2008
Messaggi: 21
|
Quote:
In altri casi, non sono interi puri.... Grazie!!!!! |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
Trovato! qui trovi una soluzione che a suo tempo mi offrì un altro utente del forum....basta sostituire lo spazio con un zero
Codice:
buf[len++] = ' '; Codice:
buf[len++] = '0';
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
Quote:
Ops.....ho toppato! scusa ma quello ti fa l'allineamento a sinistra, tu invece vuoi quello a destra! ![]() Dammi 5 minuti e rimedio....
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
Ok, puoi usare questo metodo:
Codice:
public static String rightAlign(String str, int width, char filler) { while (str.length() < width) { str = filler + str; } return str; } Codice:
System.out.println(rightAlign("ciao", 10, '0'));
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Volendo c'è anche il metodo statico formatter() nella classe String.
In pratica ti permettere di formattare dei dati come se stessi usando la classe Formatter (a cui devi fare riferimento per capire come impostare la stringa di formattazione: sotto i flags c'è ne appunto uno per fare il padding col carattere '0', per esempio).
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
|
Quote:
Se avesse a che fare con dei numeri funzionerebbe, ma con le stringhe (ho provato) no, lancia un eccezione il Formatter (sembra che quel flag per le stringhe non vadi bene). Per le stringhe il padding lo fa lo stesso, ma con gli spazi, e mi sembra di capire che non si può sostituire il carattere di riempimento.
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes] "Pirating software? Choose Microsoft!" |
|
![]() |
![]() |
![]() |
#11 | |
Junior Member
Iscritto dal: Jul 2008
Messaggi: 21
|
Quote:
![]() ![]() ![]() ![]() ![]() |
|
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Buono a sapersi.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:15.