一些特殊ACII码的用法 在控制台中覆盖显示、刷新显示和删除字符
很好奇怎么实现在控制台中不换行直接显示新的信息把旧的替换掉,于是找到了两个ACII码字符,他们可以帮助实现。
一个是‘\b’字符,这个字符是backspace,即删除上一个字符,于是可以清除以显示的旧的信息,然后在同样的位置显示新的信息。
另一个是'\r'字符,这个字符表示回车,注意,是打字机时代的回车,把‘车’退回到行首,但是不换行。在控制台中输出这个符号的时候光标(虽然打印的时候不可见)会回到行首,此时再输出信息就会覆盖掉旧的。但是这样做的缺点是如果旧的一行比新的一行更长,那么新的就无法把旧的全部覆盖掉,旧的后边的部分还会在那儿。不过解决起来也简单,在新的后边加一些空格就好了。
使用'\b'的时候可以用循环把就字符串的长度个‘\b’输出在控制台,就能完全删除旧的字符串了。如果使用'\r'那么在新的字符串后边多加一些空格或者限定每行的长度以固定输出就可以了。
下边是用'\b'的java代码演示:
package test;
public class Test {
public static int a=0;
public static void main(String[] args) {
int i=0;
for (int j = Integer.MIN_VALUE; j < Integer.MAX_VALUE; j++) {
System.out.print(j);
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for (int j2 = 0; j2 < (j+"").length(); j2++) {
System.out.print("\b");
}
}
}
}
一些特殊ACII码的用法 在控制台中覆盖显示、刷新显示和删除字符的更多相关文章
- C# 计算字符串在控制台中的显示长度
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- 在idea的控制台中中文显示为乱码
显示乱码的原因不一定相同 我目前解决方法: -Dfile.encoding=UTF-8
- ffplay源码分析7-播放控制
本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10316225.html ffplay是FFmpeg工程自带的简单播放器,使用FFmpeg ...
- Linux内核源码特殊用法
崇拜并且转载的: http://ilinuxkernel.com/files/5/Linux_Kernel_Source_Code.htm Linux内核源码特殊用法 1 前言 Linux内核源码主要 ...
- 关于 JavaScript 中一个小细节问题 (在控制台中直接 {Name:'王尼玛',Age:20} 对象报错问题)
在 Chrome 浏览器,大家可能遇到这样一个小问题. 随便输入一个 Object 对象 ,比如 {Name:'王尼玛',Age:20} ,将会报错.之前,也从来没去考虑过到底是为啥原因. 今天,刚 ...
- .NET CORE 怎么样从控制台中读取输入流
.NET CORE 怎么样从控制台中读取输入流 从Console.ReadList/Read 的源码中,可学习到.NET CORE 是怎么样来读取输入流. 也可以学习到是如何使用P/Invoke来调用 ...
- 在.NET Core控制台中使用依赖注入
本文介绍如何在控制台应用程序中使用微软提供的依赖注入功能,掌握控制台中的用法后,可以扩展到构建windows服务中. 创建控制台应用程序 添加DependencyInjection的引用 Instal ...
- wmctrl像xmonad那样方便地用快捷键来控制任务窗口的显示
窗口左右互搏之wmctrl篇 分类: LINUX 2012-10-24 16:34:41 一直有个念头,就是能够像xmonad那样方便地用快捷键来控制任务窗口的显示,今天弄wmctrl,刚好有时间 ...
- js 控制Div循环显示 非插件版
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- http请求后台报406错误
1.springMVC的项目,通过浏览器访问后台方法遇到了报406的错误,找了很多原因,最终发现是因为缺少spring-mvc的json配置. 2.添加依赖:jackson-databind.jack ...
- 路飞学城Python-Day107
88-Ajax简介 Ajax是前端的JS技术,目前向服务器发送请求是通过1.向浏览器的地址栏发送请求的方式:2.form表单的请求方式是两种get和post方式:3.a标签的href属性对接地址 是一 ...
- iOS,android 常用命令
iOS 常用命令: https://blog.csdn.net/ilikekand17/article/details/81907179 https://www.jianshu.com/p/72c62 ...
- Nginx配置udp/tcp代理
#编译 ./configure --prefix=/servyouapp/nginx --with-stream --with-http_stub_status_module #nginx.conf部 ...
- Python全双工聊天
全双工聊天 全双工聊天:服务端和客户端都可以发送并接收信息. 使用select模块中的select方法 select(rlist, wlist, xlist[, timeout]) -> (rl ...
- 为DK2应用程序迁移到Oculus CV1做好准备!
为DK2应用程序迁移到Oculus CV1做好准备! 本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/arti ...
- js获取日期当天的开始时间和结束时间
//函数调用传参格式为 2018-6-6或者2018.6.6//如:startUnix(2018-6-6) 返回的时间戳格式‘1528300799’ function startUnix($date) ...
- 做支付遇到的HttpClient大坑
前言 HTTPClient大家应该都很熟悉,一个很好的抓网页,刷投票或者刷浏览量的工具.但是还有一项非常重要的功能就是外部接口调用,比如说发起微信支付,支付宝退款接口调用等:最近我们在这个工具上栽了一 ...
- hdu 1703
#include<stdio.h> #define N 11000 int a[N]; int main() { int i,n; a[1]=0;a[2]=5;a[3] ...
- Objective-C - 改变NSMutableArray的特定元素
NSMutableArray改动元素, 使用-insertObject: atIndex: 和-replaceObjectAtIndex: withObject: 都能够, 即通过插入(insert) ...