我想在控制台窗口的同一位置写一个字符。
我想写的字符是/
-
\
_
。这将为我提供一个我可以显示以显示进度或加载的微调器。
你怎么能把字符写到同一个地方呢?否则,您将结束这样的事情/-\_/-\_/-\
答案 0 :(得分:21)
使用Java 6,您可以使用Console
执行以下操作:
class Main {
public static void main(String[] args) throws InterruptedException {
String[] spinner = new String[] {"\u0008/", "\u0008-", "\u0008\\", "\u0008|" };
Console console = System.console();
console.printf("|");
for (int i = 0; i < 1000; i++) {
Thread.sleep(150);
console.printf("%s", spinner[i % spinner.length]);
}
}
}
\u0008
是特殊的退格符。打印删除行上的最后一个字符。通过开始打印|
,然后在所有其他字符之前添加\u0008
,您将获得微调器行为。
请注意,这可能与所有控制台100%兼容(并且System.console()
可以返回null
)。
另请注意,您不一定要使用控制台类,因为将此序列打印到标准输出通常也一样。
答案 1 :(得分:2)
我认为Java本身并不允许这样做。您需要使用一些外部库。也许Java Courses Library可以帮到你。