将整数转换为等效数量的空格

2022-09-02 23:18:43

我想知道将整数转换为等效数量的空格的最简单方法是什么。打印二叉搜索树时,我需要它来表示节点之间的空格。我试过这个

  int position = printNode.getPosition(); 
  String formatter = "%1"+position+"s%2$s\n";
  System.out.format(formatter, "", node.element);

但是,与位置的 int 值相比,我得到的空格几乎是其 3 倍。我也不太确定我是否正确格式化了字符串。任何建议都会很棒!如果它使它更清晰,说位置= 6;我想在我的节点元素之前打印6个空格。


答案 1

我想你的意思是这样的:

    int n = 6;
    String s = String.format("%1$"+n+"s", "");

System.out.format("[%13s]%n", "");  // prints "[             ]" (13 spaces)
System.out.format("[%1$3s]%n", ""); // prints "[   ]" (3 spaces)

答案 2

这是一种简单但垃圾的方式:

 int count = 20;
 String spaces = String.format("%"+count+"s", "");

或填写

String spaces = String.format("%20s", "");

推荐