Désolé si cette question a déjà été posée, j'ai fait une recherche approfondie et rien.
Maintenant, je sais que:
String.format("%05d", price);
Rangerai mon prix avec des zéros à gauche, donc un prix de 25 entraînera 00025
Et si je veux les plaquer à droite, le résultat est 25000 ? Comment puis-je utiliser des modèles only String.format?
Vous pouvez utiliser:
String.format("%-5s", price ).replace(' ', '0')
Puis-je faire cela en utilisant uniquement le modèle de format?
String.format
utilise Formatter.justify
exactement comme la méthode String.printf
. À partir de ce post , vous verrez que l’espace de sortie est codé en dur, il est donc nécessaire d’utiliser le String.replace
.
Essaye ça :
String RightPaddedString = org.Apache.commons.lang.StringUtils.rightPad(InputString,NewStringlength,'paddingChar');
Essayez de lire cette documentation, regardez si la bibliothèque de Apache commons StringUtils
peut vous aider
J'ai créé un code comme celui-ci:
import org.Apache.commons.lang3.StringUtils;
public static void main(String[] args) {
String str = "123";
str = StringUtils.leftPad(str,10,"0"); //you can also look the rightPad function.
System.out.println(str);
}
Crédits à beginnersbook.com , voici une solution efficace au problème:
public class PadRightTest {
public static void main(String[] argv) {
System.out.println("#" + rightPadZeros("mystring", 10) + "@");
System.out.println("#" + rightPadZeros("mystring", 15) + "@");
System.out.println("#" + rightPadZeros("mystring", 20) + "@");
}
public static String rightPadZeros(String str, int num) {
return String.format("%1$-" + num + "s", str).replace(' ', '0');
}
}
et le résultat est:
#mystring00@
#mystring0000000@
#mystring000000000000@
Utilisez cette fonction pour un remplissage à droite.
private String rightPadding(String 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 ce problème en utilisant uniquement du Java natif.
StringBuilder sb = new StringBuilder("1234");
sb.setLength(9);
String test = sb.toString().replaceAll("[^0-9]", "0");
System.out.println(test);
Donc, il a imprimé: 123400000
si vous voulez faire sans format ou aucune fonction alors utilisé cette astuce simple System.out.println(price+"000");