J'ai besoin de produire une chaîne de longueur fixe pour générer un fichier basé sur la position des caractères. Les caractères manquants doivent être remplis de caractère espace.
A titre d'exemple, le champ CITY a une longueur fixe de 15 caractères. Pour les entrées «Chicago» et «Rio de Janeiro», les sorties sont
"Chicago" "Rio de Janeiro".
java
string
formatting
Rafael Borja
la source
la source
Réponses:
Depuis Java 1.5, nous pouvons utiliser la méthode java.lang.String.format (String, Object ...) et utiliser le format printf.
La chaîne de format
"%1$15s"
fait le travail. Où1$
indique l'index de l'argument,s
indique que l'argument est une chaîne et15
représente la largeur minimale de la chaîne. Mettre tous ensemble:"%1$15s"
.Pour une méthode générale, nous avons:
Peut-être que quelqu'un peut suggérer une autre chaîne de format pour remplir les espaces vides avec un caractère spécifique?
la source
Maybe someone can suggest another format string to fill the empty spaces with an specific character?
- jetez un œil à la réponse que j'ai donnée.1$
représente l'index de l'argument et15
la largeurUtilisez
String.format
le remplissage avec des espaces et remplacez-les par le caractère souhaité.Impressions
000Apple
.Mettre à jour une version plus performante (car elle ne repose pas sur
String.format
), qui n'a aucun problème avec les espaces (merci à Rafael Borja pour l'indice).Impressions
00New York
.Mais une vérification doit être ajoutée pour empêcher la tentative de création d'un tableau de caractères de longueur négative.
la source
Ce code aura exactement le nombre de caractères donné; rempli d'espaces ou tronqué sur le côté droit:
la source
Vous pouvez également écrire une méthode simple comme ci-dessous
la source
Pour le bon pad dont vous avez besoin
String.format("%0$-15s", str)
c'est-à-dire que le
-
signe sera pad "droit" et aucun-
signe ne sera pad "gauche"voir mon exemple ici
http://pastebin.com/w6Z5QhnJ
l'entrée doit être une chaîne et un nombre
exemple d'entrée: Google 1
la source
Bien mieux que Guava imo. Jamais vu un seul projet Java d'entreprise utilisant Guava, mais Apache String Utils est incroyablement courant.
la source
La bibliothèque Guava a Strings.padStart qui fait exactement ce que vous voulez, ainsi que de nombreux autres utilitaires utiles.
la source
Voici une astuce intéressante:
la source
Voici le code avec les cas de tests;):
J'aime TDD;)
la source
Grand résumé ici
la source
Ce code fonctionne très bien.
Bon codage !!
la source
la source
Cette fonction simple fonctionne pour moi:
Invocation:
la source