Dans une fonction de "jolie impression" pour une carte imbriquée, j'ai besoin d'une simple fonction d'indentation pour ajouter l'espace nécessaire à ma structure. Je voulais une solution simple en une ligne et la meilleure que j'ai trouvée était une solution en deux lignes. Idéalement, je voulais ceci :
String indentSpace = new String(Arrays.fill(new char[indent], 0, indent-1, ' '));
Cela ne fonctionne pas car Arrays.fill n'est pas "fluide" ; il renvoie void.
Une traduction littérale de cette expression est trop verbeuse à mon goût :
char[] chars = new char[indent];
Arrays.fill(chars , ' ');
String indentSpace = new String(chars);
Finalement, je me suis contenté d'une solution à deux lignes, peu convaincante :
private final String indentSpace=" ";
...
String alternative = indentSpace.substring(0,indent % indentSpace.length());
Il s'agit d'une petite critique, mais je suis curieux de savoir s'il existe une solution plus élégante. Je reconnais que la dernière option pourrait être un bon choix en termes de performances.
Des prises de position ?