介绍下java printf方法 介绍下java printf方法 举个例子 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.util.Date;public class Tprintf { public static void main(String args[]){ //先看简单的,格式化输出,不指定索引,即按顺序索引 System.out.printf("顺序输出一些数:%d %f %b %c %s\n",10,20.0,true,'哈',"这是一个字符串"); //其实,格式化字符的目的,是让其按一定格式显示 int b[][]={ {12,2323,32}, {133,23,101}, {0,1,2} }; System.out.println("下面先不定格式显示数组b"); for(int i=0;i<b.length;i++){ for(int j=0;j<b[i].length;j++){ System.out.print(b[i][j]+" "); } System.out.println(); } System.out.println("有没有发现,由于数大小不一,很不整齐"); System.out.println("下面整齐显示,这要靠设置yu宽,这里默认用空格填充"); for(int i=0;i<b.length;i++){ for(int j=0;j<b[i].length;j++){ System.out.printf("%5d",b[i][j]); } System.out.println(); } System.out.println("呵呵,这是右对齐,用空格填充"); System.out.println("下面来谈索引,之前输出,一个格式对应一个参数,是按顺序对应的,下面看看指定索引的效果"); System.out.printf("%1$d %2$d %3$d\n",1,2,3);//这句等于没打,还是按顺序输出,嘿嘿 System.out.printf("%3$d %2$d %1$d\n",1,2,3);//倒序 System.out.printf("%1$d %1$d %1$d\n", 10);//这时,多个索引都指向一个参数,一会儿你就知道,这有时很有必要 System.out.println("下面说说那个复杂的日期\n现在用Date这个类"); long time=(new Date()).getTime();//这样,time这个long型值里面记录的是1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数 //然而,格式化字符可以输出这个值的信息,如年,月,日,星期,时,分秒 //有的参数一次只输出一个信息,如时 //有的参数一次输出一批,比如:时分秒 //所以,这些格式都要指定一个参数,就是time,现在你知道多个格式指定一个参数的必要了吧,嘿嘿 //对了,所有时间的格式,是以%t开头,后面接其他字母,具体说明,列出几个常用的 //F:年-月-日 //A:星期全称 //H:小时(00-23) //M:分钟(00-59) //S:秒数(00-59) //唉,白打了,下面一行的输出效果,可以说明一切 System.out.printf("当前时间:%tF %<tA %<tH:%<tM:%<tS \n",time); }} System.out.printf("a");这样也可以这是java老的输出方式,从C语言printf转化而来,后来用print和println方法 楼上,不清楚别乱说,println和print这两种函数虽然学起来很简单,但是它们不具备格式化输出的能力。Java从1.5版本开始才具体格式化输出的功能,才有了printf这个函数。你可以从API文档中看出:(看最下一行)printfpublic PrintStream printf(String format, Object... args)使用指定格式字符串和参数将格式化的字符串写入此输出流的便捷方法。 调用此方法的 out.printf(format, args) 形式,行为与以下调用完全相同: out.format(format, args) 参数:format - 在格式字符串的语法中描述的格式字符串args - 格式字符串中的格式说明符引用的参数。如果参数多于格式说明符,则忽略额外的参数。参数的数量是可变的,并且可以为零。参数的最大数量受到《Java Virtual Machine Specification》定义的 Java 数组的最大维数的限制。针对 null 参数的行为依赖于 conversion。 返回:此输出流 抛出: IllegalFormatException - 如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、对给定格式字符串而言不够充足的参数或其他非法条件。有关所有可能的格式错误的规范,请参阅 formatter 类规范的详细信息部分。 NullPointerException - 如果 format 为 null从以下版本开始: 1.5 怎么得到一个字符串的引用 请问,如何用java调用.Net的Web Service? 长春径点科技(avepoint)部分面试题(含答案) 关于JAVA网络TCP-JAVA初学者的问题 关于内部类的构造方法 关于这个程序,大家来看看 java中object流如何读取文件中的多个对象 讨论一下java里的垃圾回收算法 高手给解释一下 java中equals和==的区别【转载】 JAVA程序界面问题 求解!Java分割字符并重组
import java.util.Date;
public class Tprintf {
public static void main(String args[]){
//先看简单的,格式化输出,不指定索引,即按顺序索引
System.out.printf("顺序输出一些数:%d %f %b %c %s\n",10,20.0,true,'哈',"这是一个字符串");
//其实,格式化字符的目的,是让其按一定格式显示
int b[][]={
{12,2323,32},
{133,23,101},
{0,1,2}
};
System.out.println("下面先不定格式显示数组b");
for(int i=0;i<b.length;i++){
for(int j=0;j<b[i].length;j++){
System.out.print(b[i][j]+" ");
}
System.out.println();
}
System.out.println("有没有发现,由于数大小不一,很不整齐");
System.out.println("下面整齐显示,这要靠设置yu宽,这里默认用空格填充");
for(int i=0;i<b.length;i++){
for(int j=0;j<b[i].length;j++){
System.out.printf("%5d",b[i][j]);
}
System.out.println();
}
System.out.println("呵呵,这是右对齐,用空格填充");
System.out.println("下面来谈索引,之前输出,一个格式对应一个参数,是按顺序对应的,下面看看指定索引的效果");
System.out.printf("%1$d %2$d %3$d\n",1,2,3);//这句等于没打,还是按顺序输出,嘿嘿
System.out.printf("%3$d %2$d %1$d\n",1,2,3);//倒序
System.out.printf("%1$d %1$d %1$d\n", 10);//这时,多个索引都指向一个参数,一会儿你就知道,这有时很有必要
System.out.println("下面说说那个复杂的日期\n现在用Date这个类");
long time=(new Date()).getTime();//这样,time这个long型值里面记录的是1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数
//然而,格式化字符可以输出这个值的信息,如年,月,日,星期,时,分秒
//有的参数一次只输出一个信息,如时
//有的参数一次输出一批,比如:时分秒
//所以,这些格式都要指定一个参数,就是time,现在你知道多个格式指定一个参数的必要了吧,嘿嘿
//对了,所有时间的格式,是以%t开头,后面接其他字母,具体说明,列出几个常用的
//F:年-月-日
//A:星期全称
//H:小时(00-23)
//M:分钟(00-59)
//S:秒数(00-59)
//唉,白打了,下面一行的输出效果,可以说明一切
System.out.printf("当前时间:%tF %<tA %<tH:%<tM:%<tS \n",time);
}
}
你可以从API文档中看出:(看最下一行)
printf
public PrintStream printf(String format,
Object... args)使用指定格式字符串和参数将格式化的字符串写入此输出流的便捷方法。
调用此方法的 out.printf(format, args) 形式,行为与以下调用完全相同: out.format(format, args)
参数:
format - 在格式字符串的语法中描述的格式字符串
args - 格式字符串中的格式说明符引用的参数。如果参数多于格式说明符,则忽略额外的参数。参数的数量是可变的,并且可以为零。参数的最大数量受到《Java Virtual Machine Specification》定义的 Java 数组的最大维数的限制。针对 null 参数的行为依赖于 conversion。
返回:
此输出流
抛出:
IllegalFormatException - 如果格式字符串包含非法语法、与给定参数不兼容的格式说明符、对给定格式字符串而言不够充足的参数或其他非法条件。有关所有可能的格式错误的规范,请参阅 formatter 类规范的详细信息部分。
NullPointerException - 如果 format 为 null
从以下版本开始:
1.5