首页 > 编程知识 正文

格式化输出函数为,printf输出指定位数

时间:2023-05-04 04:04:44 阅读:110855 作者:1646

3358 www.Sina.com/http://www.Sina.com/printf和format得到一模一样的效果,用printf直接调用format,本质上是输出流

3 .换行符%n 1.不使用格式化输出,就要进行大量字符串拼接+,很麻烦在另一行--- 'n”中换行符(newline ) )。

2.使用printf或者format()进行格式化输出返回一行的开头--- 'r”返回(return )

用eclipse敲回车时,实际上是换行符

Java是跨平台编程语言,可以在Windows、Linux、Mac等不同平台上使用相同的代码

但是,不同的操作系统有不同的换行符

)1)在DOS和Windows上,每行的结尾为“rn”。

)在Linux系统中,每行的结尾只能有“n”。

)3)在Mac系统中,每行的结尾只有() r。

使用%n可以实现与平台无关的换行符,以便所有操作系统都以同样的方式表示同一java程序的换行符

表示String类的format ) )方法进行本地化,以创建格式化字符串并连接多个字符串对象。 format ) )方法有两种重载格式。

格式(string format,Object. args )新字符串使用本地区域设置来创建字符串的格式和参数,并生成新的格式化字符串。

格式(locale locale,String format,Object. args )使用指定的区域设置创建字符串格式和参数,并生成格式化字符串。 如图所示,显示不同的转换器以实现从不同数据类型到字符串的转换。

测试用例

publicstaticvoidmain (string [ ] args ) { String str=null; str=string.format('hi,%s ','王力'); system.out.println(str; str=string.format('hi,%s:%s.%s )、“傻瓜指甲油”、“王力”、“hmdhh”; system.out.println(str; System.out.printf ('字母a的大写字母为%c %n ',' a ' ); system.out.printf('37的结果为%b %n ',37 ); system.out.printf('100的一半为%d %n ',100/2 ); system.out.printf('100的十六进制为%x %n ',100 ); system.out.printf('100的八进制为%o %n ',100 ); system.out.printf(50元本8.5折为%f元%n )、50*0.85 ); System.out.printf (以上价格的十六进制为%a %n ),50*0.85 ); System.out.printf (以上价格的指数为%e %n ),50*0.85 ); System.out.printf (上面价格的指数和浮点数的结果长度短的是%g %n ),50*0.85 ); System.out.printf ('以上折扣为%d%% %n ',85 ); System.out.printf ('字符a的哈希代码为%h %n ',' a ' ); //不同国家的千位分隔符system.out.format (locale.France,' %, 2f%n ',Math.PI*10000 ); system.out.format(locale.us,' %, 2f%n ',Math.PI*10000 ); system.out.format(locale.uk,' %, 2f%n ',Math.PI*10000 ); (hi、大眼冰淇淋、傻瓜指甲油:王力.王张文字a大写字母为A 37,结果为假100的一半为50(100的十六进制为64 ),100的八进制为144 ) 50元的书打8.5折

测试用例

publicstaticvoidmain (string [ ] args ) { String str=null; //$ str=使用string.format ()格式参数):%1$d,%2$s ',99,' abc ' ); system.out.println(str;

//+使用 System.out.printf("显示正负数的符号:%+d与%d%n", 99,-99); //补O使用 System.out.printf("最牛的编号是:%03d%n", 7); //空格使用 System.out.printf("Tab键的效果是:% 8d%n", 7); //.使用 System.out.printf("整数分组的效果是:%,d%n", 9989997); //空格和小数点后面个数 System.out.printf("一本书的价格是:% 50.5f元%n", 49.8);}

输出结果

格式参数$的使用:99,abc显示正负数的符号:+99与-99最牛的编号是:007Tab键的效果是: 7整数分组的效果是:9,989,997一本书的价格是: 49.80000元

日期和事件字符串格式化

在程序界面中经常需要显示时间和日期,但是其显示的 格式经常不尽人意,需要编写大量的代码经过各种算法才得到理想的日期与时间格式。字符串格式中还有%tx转换符没有详细介绍,它是专门用来格式化日期和时 间的。%tx转换符中的x代表另外的处理日期和时间格式的转换符,它们的组合能够将日期和时间格式化成多种格式。

常见日期和时间组合的格式,如图所示。

测试用例

public static void main(String[] args) { Date date=new Date(); //c的使用 System.out.printf("全部日期和时间信息:%tc%n",date); //f的使用 System.out.printf("年-月-日格式:%tF%n",date); //d的使用 System.out.printf("月/日/年格式:%tD%n",date); //r的使用 System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date); //t的使用 System.out.printf("HH:MM:SS格式(24时制):%tT%n",date); //R的使用 System.out.printf("HH:MM格式(24时制):%tR",date);}

输出结果

 

全部日期和时间信息:星期一 九月 10 10:43:36 CST 2012年-月-日格式:2012-09-10月/日/年格式:09/10/12HH:MM:SS PM格式(12时制):10:43:36 上午HH:MM:SS格式(24时制):10:43:36HH:MM格式(24时制):10:43

定义日期格式的转换符可以使日期通过指定的转换符生成新字符串。这些日期转换符如图所示。

public static void main(String[] args) { Date date=new Date(); //b的使用,月份简称 String str=String.format(Locale.US,"英文月份简称:%tb",date); System.out.println(str); System.out.printf("本地月份简称:%tb%n",date); //B的使用,月份全称 str=String.format(Locale.US,"英文月份全称:%tB",date); System.out.println(str); System.out.printf("本地月份全称:%tB%n",date); //a的使用,星期简称 str=String.format(Locale.US,"英文星期的简称:%ta",date); System.out.println(str); //A的使用,星期全称 System.out.printf("本地星期的简称:%tA%n",date); //C的使用,年前两位 System.out.printf("年的前两位数字(不足两位前面补0):%tC%n",date); //y的使用,年后两位 System.out.printf("年的后两位数字(不足两位前面补0):%ty%n",date); //j的使用,一年的天数 System.out.printf("一年中的天数(即年的第几天):%tj%n",date); //m的使用,月份 System.out.printf("两位数字的月份(不足两位前面补0):%tm%n",date); //d的使用,日(二位,不够补零) System.out.printf("两位数字的日(不足两位前面补0):%td%n",date); //e的使用,日(一位不补零) System.out.printf("月份的日(前面不补0):%te",date);}

输出结果

 

英文月份简称:Sep本地月份简称:九月英文月份全称:September本地月份全称:九月英文星期的简称:Mon本地星期的简称:星期一年的前两位数字(不足两位前面补0):20年的后两位数字(不足两位前面补0):12一年中的天数(即年的第几天):254两位数字的月份(不足两位前面补0):09两位数字的日(不足两位前面补0):10月份的日(前面不补0):10

和日期格式转换符相比,时间格式的转换符要更多、更精确。它可以将时间格式化成时、分、秒甚至时毫秒等单位。格式化时间字符串的转换符如图所示。

测试代码

public static void main(String[] args) {Date date = new Date();//H的使用System.out.printf("2位数字24时制的小时(不足2位前面补0):%tH%n", date);//I的使用System.out.printf("2位数字12时制的小时(不足2位前面补0):%tI%n", date);//k的使用System.out.printf("2位数字24时制的小时(前面不补0):%tk%n", date);//l的使用System.out.printf("2位数字12时制的小时(前面不补0):%tl%n", date);//M的使用System.out.printf("2位数字的分钟(不足2位前面补0):%tM%n", date);//S的使用System.out.printf("2位数字的秒(不足2位前面补0):%tS%n", date);//L的使用System.out.printf("3位数字的毫秒(不足3位前面补0):%tL%n", date);//N的使用System.out.printf("9位数字的毫秒数(不足9位前面补0):%tN%n", date);//p的使用String str = String.format(Locale.US, "小写字母的上午或下午标记(英):%tp", date);System.out.println(str); System.out.printf("小写字母的上午或下午标记(中):%tp%n", date);//z的使用System.out.printf("相对于GMT的RFC822时区的偏移量:%tz%n", date);//Z的使用System.out.printf("时区缩写字符串:%tZ%n", date);//s的使用System.out.printf("1970-1-1 00:00:00 到现在所经过的秒数:%ts%n", date);//Q的使用System.out.printf("1970-1-1 00:00:00 到现在所经过的毫秒数:%tQ%n", date);}

输出结果


 

2位数字24时制的小时(不足2位前面补0):112位数字12时制的小时(不足2位前面补0):112位数字24时制的小时(前面不补0):112位数字12时制的小时(前面不补0):112位数字的分钟(不足2位前面补0):032位数字的秒(不足2位前面补0):523位数字的毫秒(不足3位前面补0):7739位数字的毫秒数(不足9位前面补0):773000000小写字母的上午或下午标记(英):am小写字母的上午或下午标记(中):上午相对于GMT的RFC822时区的偏移量:+0800时区缩写字符串:CST1970-1-1 00:00:00 到现在所经过的秒数:13472462321970-1-1 00:00:00 到现在所经过的毫秒数:1347246232773

 

 


    

 

 

 

 

 

 

 

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。