首先让我澄清一下,我是编程新手,希望我使用正确的术语。
我使用的是System.out.print("");
打印到Windows控制台的方法:System.out.print("Backspace b"); //Output: Backspace b
所以如果我输入,光标现在位于 b“后面”System.out.print("\b");
光标向左移动一位,删除“b”。 -->
System.out.print("Backspace b"); //Output: Backspace b
System.out.print("\bh"); //Output: Backspace h
现在如果我输入System.out.print("\n\bh");
输出不是Backspace bh
but:
"Backspace b
h
"
我怎样才能让光标“向上”返回一行并到达最右边。某行有一个“减\n”或“非\n”,以便它读取Backspace bh
?
Java中有类似的东西吗?
没有第三方库这是不可能的。我对此进行了广泛的研究,因为过去一周我一直在开发控制台游戏,据我所知,您可以需要 JNI、JNA、Jansi 或 JLine,而 JLine 则需要 Jansi 或 JNA。我个人推荐JLine因为所有其他的都需要你编写 C 或 C++。
如果你说想要上升这么多行,你可以用 JLine 做这样的事情。
import org.jline.terminal.Terminal;
import org.jline.terminal.TerminalBuilder;
import org.jline.utils.InfoCmp;
import java.io.IOException;
public class CursorStuff
{
static Terminal terminal;
public static void main(String[] args) throws IOException
{
terminal = TerminalBuilder.terminal();
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("This line will get overwritten by the terminal path");
goBackLines(3);
System.out.println("back 3 overwriting 2");
}
public static void goBackLines(int remove)
{
for(int i = 0; i < remove; i++)
{
terminal.puts(InfoCmp.Capability.cursor_up);
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)