Désolé si cette question a déjà été posée, j’ai effectué une recherche approfondie et rien.
Maintenant, je sais que:
Ssortingng.format("%05d", price);
Sera remplir mon prix avec des zéros à gauche, donc un prix de 25 entraînera 00025
Et si je veux les placer à droite, le résultat est 25000 ? Comment puis-je faire cela en utilisant uniquement les modèles Ssortingng.format ?
Vous pouvez utiliser:
Ssortingng.format("%-5s", price ).replace(' ', '0')
Puis-je le faire en utilisant uniquement le modèle de format?
Ssortingng.format
utilise Formatter.justify
comme la méthode Ssortingng.printf
. À partir de cet article, vous verrez que l’espace de sortie est codé en dur, il est donc nécessaire d’utiliser le Ssortingng.replace
.
Essaye ça :
Ssortingng RightPaddedSsortingng = org.apache.commons.lang.SsortingngUtils.rightPad(InputSsortingng,NewSsortingnglength,'paddingChar');
S’il vous plaît essayer de lire ce document, regardez si la bibliothèque de Apache commons SsortingngUtils
peut vous aider
J’ai créé un code comme celui-ci:
import org.apache.commons.lang3.SsortingngUtils; public static void main(Ssortingng[] args) { Ssortingng str = "123"; str = SsortingngUtils.leftPad(str,10,"0"); //you can also look the rightPad function. System.out.println(str); }
Crédits à beginnersbook.com , ceci est une solution de travail pour le problème:
public class PadRightTest { public static void main(Ssortingng[] argv) { System.out.println("#" + rightPadZeros("myssortingng", 10) + "@"); System.out.println("#" + rightPadZeros("myssortingng", 15) + "@"); System.out.println("#" + rightPadZeros("myssortingng", 20) + "@"); } public static Ssortingng rightPadZeros(Ssortingng str, int num) { return Ssortingng.format("%1$-" + num + "s", str).replace(' ', '0'); } }
et la sortie est la suivante:
#myssortingng00@ #myssortingng0000000@ #myssortingng000000000000@
si vous voulez faire sans format ou n’importe quelle fonction alors utilisez cette simple astuce System.out.println(price+"000");
Utilisez cette fonction pour un remplissage correct.
private Ssortingng rightPadding(Ssortingng word, int length, char ch) { return (length > word.length()) ? rightPadding(word + ch, length, ch) : word; }
comment utiliser?
rightPadding("25", 5, '0');
Dans mon cas, j’ai résolu cela en utilisant uniquement du Java natif.
SsortingngBuilder sb = new SsortingngBuilder("1234"); sb.setLength(9); Ssortingng test = sb.toSsortingng().replaceAll("[^0-9]", "0"); System.out.println(test);
Donc, il a imprimé: 123400000