Java格式化输出详细讲解(printf、print、println、format等)

 更新时间:2023年03月30日 12:02:34   作者:韩跳跳、  
Java的格式化输出等同于String.Format,与C有很大的相似,下面这篇文章主要给大家介绍了关于Java格式化输出(printf、print、println、format等)的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下

Java控制台输出

1.使用System.out.write方法输出

向控制台输出信息可以用输出流的write方法只是使用上没有print和println那么方便。实际上print和println方法也是对write的封装最终也是调用write向控制台写出的数据。
使用write时需要导入IOException,即在java文件前面加上 import java.io.IOException; write方法可能会抛出IOExcetion。
关于write方法不作详细介绍,平时还是用print或println更好

2 使用System.out.println方法输出

在idea查看,输入System.out.println()实际上是调用了以下这些方法(函数重载)

System.out.println()调用后会直接在输出之后添加一个换行,如果不写参数就是只起一个换行的作用。

其中如果参数是char[],会直接输出char[]中的所有元素,元素之间没有任何分隔符,仿佛输出了一个字符串。

还有一个比较特殊的参数是Object,Object是Java中所有类的父类,如果参数是Object对象,将直接输出Object的地址或者null,除非对应的Object重写了自己的toString方法,这里不做过多叙述。

我们可以利用字符串的连接操作,实现输出各种各样的格式,例如输出:x=5的形式,输出x的值

int x=5;
System.out.println("x="+x);

3 使用System.out.print方法输出

只比System.out.println()少了一个没有参数的方法。

System.out.print与System.out.println的唯一区别就是,这个没有添加换行。

4 System.out.printf

printf的底层就是format,俩种方法的用法没有任何区别,实际上,printf就只是调用了一下format而已

大胆猜测,java中之所以有printf这个看似多余的东西是当初为了吸引c程序员👀

下面将详细介绍其用法

格式化输出详细介绍

System.out.format(); System.out.printf();

俩者用法一致,下面以format举例说明。

当我们需要格式化输出一些数据,只是使用System.out.println();就有点不够用了,这时就需要用到format方法了

System.out提供了格式化的输出方法format,format的第一个参数是一个模板,模板面有一些占位符,再通过后面的参数替换模板中的占位符完成整个信息的输出

举个例子:

String name="LiLi";
int age=8;
char sex='男';
float grade=52.5;
System.out.format("姓名:%s, 年龄:%d, 性别:%c, 成绩:%.1f\n", name, age, sex, grade);

输出:姓名:LiLi, 年龄:8, 性别:男, 成绩:52.5

其中%c,%s等就叫做占位符,分别代表字符和字符串,它们将被后边出现的对应的变量的值替换掉。像%.1f是%f中又添加了.f 表示输出一个1位的小数。

常用占位符:

占位符说明
%d格式化输出整数
%f格式化输出浮点数
%e格式化科学计数法的浮点数
%s格式化输出字符串

当然不可能只有这么点了,下边才是大头👀

格式化整数

既可以格式化基本数据类型,也可以格式化它们的包装类

  • %d :格式化十进制整数
  • %o :格式化八进制整数
  • %x :格式化小写十六进制整数,如:abc58
  • %X :格式化大写十六进制整数,如:ABC58

修饰符

  • “+”:格式化正整数时强制添加上正好,如%+d可将123格式化位+123
  • “,”:格式化整数时按“千”分组,例如:%,d可将1234567890格式化位1,234,567,890

它俩可以组合使用,如:%+,d

数据的宽度

%md或%-md指定格式化整数的长度最少为m

如%6d可将123格式化为“ 123”,左边三个空格,即如果数字的长度不足6,则在格式化的数字左边添加空格使得整体长度为6(左边添加空格即右对齐

%-6d使得结果左对齐,即在右边添加空格,如%-6d可将123格式化为“123 ”,右边三个空格

格式化浮点数

既可以格式化基本数据类型,也可以格式化它们的包装类

修饰符

  • “+” :格式化正数时添加正号
  • “,”:将正数部分按千分位

它俩可以组合使用,如:%+,f

限制小数位数与宽度

  • “%.nf”可以限制小数的位数为n(遵循四舍五入)
  • “%mf”可以规定数据的宽度为m,长度不足补空格,默认居右(%-mf,居左)

组合使用:

System.out.printf("%7.3f",0.1235);

结果:0.124 (还有俩个空格,“.”也占一个长度)

String也可以调用format方法

String也可以调用format方法,用法与上述完全一致,结果返回一个字符串对象

例:

String s=String.format("%d",12345);

s的值为12345

总结

到此这篇关于Java格式化输出(printf、print、println、format等)的文章就介绍到这了,更多相关Java格式化输出内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java状态机方案解决订单状态扭转示例详解

    java状态机方案解决订单状态扭转示例详解

    这篇文章主要为大家介绍了java状态机方案解决订单状态扭转示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 图书管理系统java版

    图书管理系统java版

    这篇文章主要为大家详细介绍了java版的图书管理系统,通过实例为大家快速掌握数据库编程技术,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Java实现多任务执行助手

    Java实现多任务执行助手

    这篇文章主要为大家详细介绍了Java实现多任务执行助手,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • SpringBoot+Jpa项目配置双数据源的实现

    SpringBoot+Jpa项目配置双数据源的实现

    本文主要介绍了SpringBoot+Jpa项目配置双数据库源的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Java使用Arrays.asList报UnsupportedOperationException的解决

    Java使用Arrays.asList报UnsupportedOperationException的解决

    这篇文章主要介绍了Java使用Arrays.asList报UnsupportedOperationException的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • SpringBoot3安全管理操作方法

    SpringBoot3安全管理操作方法

    这篇文章主要介绍了SpringBoot3安全管理,在实际开发中,最常用的是登录验证和权限体系两大功能,在登录时完成身份的验证,加载相关信息和角色权限,在访问其他系统资源时,进行权限的验证,保护系统的安全,文中有详细的操作步骤,需要的朋友可以参考下
    2023-08-08
  • Spring Boot集成LangChain来实现Rag应用的问题小结

    Spring Boot集成LangChain来实现Rag应用的问题小结

    检索增强生成(RAG)是一种优化大型语言模型(LLM)输出的技术,通过引用权威知识库以增强模型的准确性和相关性,RAG允许LLM在不重新训练的情况下访问特定领域的知识,提高了其在各种应用中的实用性和信任度,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • 通过实例解析Socket套接字通信原理

    通过实例解析Socket套接字通信原理

    这篇文章主要介绍了通过实例解析Socket套接字通信原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • SpringBoot使用FFmpeg实现M3U8切片转码播放

    SpringBoot使用FFmpeg实现M3U8切片转码播放

    FFmpeg是一个开源跨平台的多媒体处理工具套件,它支持音频、视频文件的编码、解码、流媒体传输以及转换等多种操作,本文小编给大家介绍了SpringBoot使用FFmpeg实现M3U8切片转码播放的操作,需要的朋友可以参考下
    2024-08-08
  • Springcloud实现服务多版本控制的示例代码

    Springcloud实现服务多版本控制的示例代码

    这篇文章主要介绍了Springcloud实现服务多版本控制的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05

最新评论