Convertit un entier en nombre équivalent d'espaces vierges
Je me demandais ce que la façon la plus simple est de convertir un entier de l'équivalent certain nombre d'espaces vides. J'en ai besoin pour les espaces entre les nœuds lors de l'impression d'un arbre de recherche binaire. J'ai essayé ce
int position = printNode.getPosition();
String formatter = "%1"+position+"s%2$s\n";
System.out.format(formatter, "", node.element);
Mais je suis presque 3 fois plus nombreux espaces par rapport à la valeur int de position. Je ne suis pas vraiment sûr de savoir si je suis le formatage de la chaîne de droit.
Toute suggestion serait génial!
Si cela le rend plus clair, de dire de position = 6; je veux 6 espaces imprimé avant mon élément de nœud.
source d'informationauteur mike
Vous devez vous connecter pour publier un commentaire.
Je pense que vous vouliez dire quelque chose comme:
Vous pouvez créer un
char[]
de la longueur désirée,Arrays.fill
avec des espaces, puis créer unString
(ou justeappend
à votre propreStringBuilder
etc).Si vous êtes en train de faire cela avec un grand nombre de valeurs possibles de
n
au lieu de créer et de remplissagenew char[n]
à chaque fois, vous pouvez créer une assez longue chaîne d'espaces et de prendre le plus courtsubstring
en tant que de besoin.C'est facile, mais de la foutaise, de la manière:
ou rempli
Pourquoi ne pas en boucle sur les entiers et ajouter un espace à chaque itération?
Et vous pouvez utiliser
StringBuilder
au lieu de String, siposition
peut devenir très grand et la performance est un problème.Droite foward solution:
StringBuilder est efficace en termes de vitesse.
Voici un exemple:
Si nous faisons userNum = 3, la sortie serait:
Espère que ça aiderait!
Si l'on va utiliser une solution itérative de toute façon, on peut avoir envie de faire un plus "Groovy", comme si l':
Notez que cela ne fonctionne pas pour zéro espaces. pour que vous voulez quelque chose de plus comme: