Java:将控制台光标向上移动一行

2023-11-22

首先让我澄清一下,我是编程新手,希望我使用正确的术语。

我使用的是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(使用前将#替换为@)

Java:将控制台光标向上移动一行 的相关文章

  • forrt1:严重(170):程序异常 - 堆栈溢出

    并提前感谢您的帮助 我已经编译了一个程序 不是我编写的 它在 Mac 上运行得很好 但是当我尝试在 Windows 上执行该程序时 在程序开始执行后不久 我收到以下错误消息 forrt1 严重 170 程序异常 堆栈溢出 我不是 ifort
  • 使用 java 的 RAR 档案 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • JPA:如何将字符串持久保存到数据库字段中,输入 MYSQL Text

    需求是用户可以写文章 所以我选择typeText为了contentmysql数据库内的字段 我怎样才能转换Java String into MySQL Text 干得好Jim Tough Entity public class Articl
  • Java byte[] 与 String 之间的转换

    为什么这个junit测试失败了 import org junit Assert import org junit Test import java io UnsupportedEncodingException public class T
  • 适用于 Solaris 的 Java 8 中缺少 javaws

    看起来 Oracle 从 Java 8 for Solaris 中删除了 Java Web Start javaws 在 Java 8u51 中不再可用 来自兼容性指南 http www oracle com technetwork jav
  • Jodatime 日期格式

    是否可以格式化 JodaTime 日期 这是代码 private static LocalDate priorDay LocalDate date1 do date1 date1 plusDays 1 while date1 getDayO
  • 驱动程序信息:driver.version:未知,使用 ChromeDriver v78.0.3904.70 和 Chrome 浏览器 v78.0.3904.97

    我使用的是java 1 8和chrome浏览器版本78 0 3904 97 我正在尝试使用 chrome 驱动程序版本执行我的 selenium 脚本代码78 0 3904 70 但在执行时我面临以下问题并且 chrome 立即崩溃 Pic
  • Java 7 中 Object 和 int 的比较

    最近我偶然发现了一个问题 让我停下来思考 对我来说 下面的代码应该总是会触发错误 但是当我的一位同事问我为什么 Eclipse 没有显示错误时 我无法回答任何问题 class A public static void main String
  • 将 Azure 网站迁移到 Azure 云服务

    我有一个项目 我计划将 Web 应用程序作为 Azure 网站启动 然后将其迁移到 Azure 云服务 也称为托管服务 如果需要作为扩展策略 做出这个决定是因为我了解到 Azure 网站的开发更加简单 快速 几乎不需要特定于 Azure 的
  • activemq 的优先级

    我们目前正在使用 JMS 和 activemq 5 5 1 开发一个应用程序 我们想为某些消息定义更高的优先级 这将使它们首先被消耗 设置生产者和消费者后 通过spring 3 1 JMSTemplate 优先级并不能完全发挥作用 事实上
  • Java中无参数的for循环

    我在看别人的代码 发现了这段代码 for 我不是 Java 专家 这行代码在做什么 起初 我认为这会创建一个无限循环 但在该程序员使用的同一个类中 while true 其中 如果我错了 请纠正我 是一个无限循环 这两个相同吗 为什么有人会
  • 如何从 Qt 应用程序通过 ODBC 连接到 MySQL 数据库?

    我有一个新安装的 MySQL 服务器 它监听 localhost 3306 从 Qt 应用程序连接到它的正确方法是什么 原来我需要将MySQL添加到ODBC数据源 我在遵循这个视频教程后做到了这一点 https youtu be K3GZi
  • 使用 Java 通过 HTTP 下载未知长度的文件

    我想用java下载一个HTTP查询 但是我下载的文件在下载时有一个未确定的长度 我认为这将是相当标准的 所以我搜索并找到了它的代码片段 http snipplr com view 33805 http snipplr com view 33
  • 链表中的虚拟节点

    问 什么时候使用它们 作业问题 列表中的第一个和最后一个节点 有时用作列表中的第一个和最后一个节点 从未用作列表中的第一个和最后一个节点 维基百科说 哨兵节点是与链接一起使用的专门指定的节点 列表和树作为遍历路径终止符 哨兵节点的作用是 不
  • 将变量从 jenkins 传递到 testng.xml

    我想根据从詹金斯传递的变量运行测试用例 例如 选择您要运行的测试用例 测试用例一 测试用例二 在 pom xml maven 中
  • Java 相当于 Python 的 urllib.urlencode(基于 HashMap 的 UrlEncode)

    From https stackoverflow com questions 2018026 should i use urllib or urllib2 2018103 2018103 Java 中 Python 的 urllib url
  • Python 可以替代 Java 小程序吗?

    除了制作用于物理模拟 如抛射运动 重力等 的教育性 Java 小程序之外 还有其他选择吗 如果你想让它在浏览器中运行 你可以使用PyJamas http pyjs org 这是一个 Python 到 Javascript 的编译器和工具集
  • Drools:为什么是无状态会话?

    Drools 使用会话来存储运行时数据 为此 有两种会话 无状态和有状态 与无状态会话相比 有状态会话允许迭代调用 并且似乎比无状态会话具有所有优势 那么为什么会有无状态会话呢 他们服务的目的是什么 与有状态会话相比 它们的优势是什么 谢谢
  • Java,如何管理线程读取socket(websocket)?

    我有一个 WebSocket 服务器 我的服务器创建一个新线程来处理新连接 该线程一直处于活动状态 直到 websocket 中断 我的问题 对于 1 000 000 个连接 我需要 1 000 000 个线程 我如何通过一个线程处理多个
  • 使用 Hibernate 防止无限循环数据检索

    我想知道 想象一个场景 例如 POJO public class User private String userName private String name private String surname private List

随机推荐

  • APC 与 PHP 5.4 或 PHP 5.5 兼容吗?

    APC 似乎没有更新以与 php 5 4 版本一致 我希望他们像最初计划的那样将 APC 包含在 PHP 核心中 对于当前 APC 是否适用于 php 5 4 我似乎找不到任何明确的答案 我设法找到 php 5 4 的 Ubuntu 软件包
  • 如何将 Angular JS 集成到 Grails 2.3.4 中?

    我正在运行grails 2 3 4并考虑将 angularjs 集成到我的下一个应用程序中 我认为从服务器端来说最好的方法是使用grailsREST域和控制器类中的集成 然而我被困在这里了 如何让 grails 与 angularjs 进行
  • 为什么从 int 到 float 的转换会对值进行四舍五入?

    我正在阅读 CS APP 关于演员阵容 它说在演员阵容时从int到float 数字不能溢出 但可能会被四舍五入 这对我来说很奇怪 因为我不知道要舍入什么 所以我尝试了一下 我认为这只适用于非常大的整数 接近INT MAX INT MIN 但
  • 从 Excel 文档中的代码隐藏访问 ActiveX 或 Form 对象(文本框)

    Excel 文件中有几个作为 ActiveX 对象的文本框 我想从代码隐藏中访问它们 我正在将 ClosedXML 用于其他领域 但我愿意接受其他建议 要从 C 访问 OLE 对象 请添加对 Microsoft Forms 2 0 对象库的
  • Caliburn.Micro。使用 Autofac 自动为 IHandle 实现者调用 eventaggregator.Subscribe()

    In Caliburn Micro作者的文档提到了这种可能性 文档链接 IHandle继承自标记接口IHandle 这允许使用强制转换来确定对象实例是否订阅任何事件 如果您与 IoC 容器集成 这可以实现简单的自动订阅 大多数 IoC 容器
  • 使用javascript将base64字符串转换为图像

    正在使用 Titanium 开发一个应用程序 我需要将从 JSON 获取的 Base64 字符串转换为图像 我们将非常感谢您的帮助 你可以只创建一个img元素并改变它的src与所需的数据 img src
  • 测试单个数值向量的所有元素之间的相等性

    我正在尝试测试向量的所有元素是否彼此相等 我提出的解决方案似乎有些迂回 都涉及检查length x lt c 1 2 3 4 5 6 1 FALSE y lt rep 2 times 7 TRUE With unique length un
  • 如何将 Paytm 钱包集成到 Android 应用程序中? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想将 Paytm 钱包集成到 Android 应用程序中作为支付选项 就像在 Uber 应用程序中一样 谁能帮我吗 提前致谢 Update Paytm 现已添加文档 https
  • iPhone 喜欢 WPF 项目中的红色徽章通知吗?

    I have a C WPF project which generates daily and weekly reports automatically I want to inform the user when new reports
  • 达特朗等待不止一个未来

    我想在未来的很多功能完成后做一些事情 但我不知道dart中的代码如何编写 代码是这样的 for var d in data d loadData then when all loaded do something here 但我不想一一等待
  • Ajax POST 方法将字符串中的“+”值转换为“”,为什么?

    我不明白为什么在 ajax 中 号会转换为 请解释一下 Use the encodeURIComponent 函数将您的数据转换为请求的有效编码数据 xhr open POST url true xhr send encodeURIComp
  • 使用 jmap(1.5) 从 java 核心转储中提取信息

    长话短说 一些同事正在运行一个相当旧的设置 x86 64 中的 oc4j jdk1 5 6 其应用程序恰好是关键任务 他们最近尝试部署应用程序的新版本 但一旦他们这样做 java 进程就会抛出核心转储并死掉 问题是 核心转储似乎没问题 gd
  • MVC 与 Web 应用程序的实际模式是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 造成混乱的原因是网上流传着
  • div、px、dpi 之间的关系

    如果在布局 xml 文件中 我将大小设置为 例如 12dip mdpi 中总是 12px hdpi 中总是 18px 吗 那么 dip 对于 mdpi 是否总是正确 并且对于其他密度也会相应地缩放 这个问题完全由官方文档 div px 和
  • 如何在 D2 (Phobos) 中获得单次击键?

    是否有一种简单的跨平台方法可以使用 Phobos 在 D2 中进行单次击键 例如 按任意键继续 提示 或者 Brainfuck 解释器 我尝试过的所有方法都需要在传递输入之前按 Enter 键 例如 getchar 在 Windows 上使
  • 运行循环结束——自动释放池恢复

    据我了解 一旦自动释放池被释放 自动释放的对象就会被清理 现在 自动释放池将在运行循环结束时释放 我的问题是 如果在我的类中我没有创建自定义自动释放池并对该类中的某些对象调用自动释放方法 那么这些对象在什么时候会被恢复 运行循环结束 是否意
  • 奇怪的 GCC 短 int 转换警告

    我有一些 C 代码 其内容如下 short int fun16 void short int a 2 short int b 2 return a b 当我尝试用 GCC 编译它时 我收到警告 warning conversion to s
  • 如何使用 JavaScript 下载大文件

    我需要使用 JavaScript 下载一个大文件XMLHttp请求 or fetch无需先将文件保存在 RAM 内存中 正常的链接下载对我来说不起作用 因为我需要在请求的标头中发送不记名令牌 我可以设法下载一个文件 但是这个 解决方案 它首
  • 使用 phpexcel 填充下拉列表

    我遇到了以下问题 我试图从数据库中获取一些结果 并且想将结果插入到下拉列表中 example 文件中有以下示例 objValidation gt setFormula1 Item A Item B Item C 因此结果必须以逗号分隔 总结
  • Java:将控制台光标向上移动一行

    首先让我澄清一下 我是编程新手 希望我使用正确的术语 我使用的是System out print 打印到Windows控制台的方法 System out print Backspace b Output Backspace b所以如果我输入