最近打log的时候用到了字符串的格式化。
Java中String格式化和C语言的很类似。把情况都列出来,以后好查询。
public static void main(String[] args) {
System.out.println(String.format("Hi, %s", "Rust Fisher"));
// Hi, Rust Fisher
System.out.println(String.format("%s: Hi, %s %s %s", "Lei Jun", "I", "am", "OK"));
// Lei Jun: Hi, I am OK
System.out.println(String.format("输出单个字符:%c", 'A'));
// 输出单个字符:A
System.out.printf("输出条件判断: 1>2 :%b %n", 1 > 2);
// 输出条件判断: 1>2 :false
System.out.printf("输出计算结果:100的一半是:%d %n", 100 / 2);
// 输出计算结果:100的一半是:50
System.out.printf("输出float型:100元的书打8.5折扣是:%f 元%n", 100 * 0.85);
// 输出float型:100元的书打8.5折扣是:85.000000 元
System.out.printf("输出进制转换:100的16进制数是:%x %n", 100);
// 输出进制转换:100的16进制数是:64
System.out.printf("输出进制转换:100的8进制数是:%o %n", 100);
// 输出进制转换:100的8进制数是:144
System.out.printf("输出结果进制转换:50 * 0.85的16进制数是:%a %n", 50 * 0.85);
// 输出结果进制转换:50 * 0.85的16进制数是:0x1.54p5
System.out.printf("指数表示:%e %n", 100 * 0.85);
// 指数表示:8.500000e+01
System.out.printf("上面价格的指数和浮点数结果的长度较短的是:%g %n", 50 * 0.85);
// 上面价格的指数和浮点数结果的长度较短的是:42.5000
System.out.printf("百分比表示 %d%% %n", 85);
// 百分比表示 85%
System.out.printf("字母A的散列码是:%h %n", 'A');
// 字母A的散列码是:41
System.out.println("--------------------");
System.out.println(String.format("格式参数$的使用:%1$d,%2$s", 99, "abc"));
// 格式参数$的使用:99,abc
System.out.printf("显示正负数的符号:%+d与%+d %d %n", 99, -99, -99);
// 显示正负数的符号:+99与-99 -99
System.out.printf("补O使用:%03d%n", 7);
// 补O使用:007
System.out.printf("空格使用 Tab键的效果是:% 8d%n", 7);
// 空格使用 Tab键的效果是: 7
System.out.printf(".使用 整数分组的效果是:%,d%n", 9989997);
// .使用 整数分组的效果是:9,989,997
System.out.printf("空格和小数点后面个数 一本书的价格是:% 10.5f元%n", 49.8);
// 空格和小数点后面个数 一本书的价格是: 49.80000元
System.out.println("--------------------");
Date date = new Date();
System.out.printf("c的使用 全部日期和时间信息:%tc%n", date);
// c的使用 全部日期和时间信息:星期三 四月 20 21:03:57 CST 2016
System.out.printf("f的使用 年-月-日格式:%tF%n", date);
// f的使用 年-月-日格式:2016-04-20
System.out.printf("d的使用 月/日/年格式:%tD%n", date);
// d的使用 月/日/年格式:04/20/16
System.out.printf("r的使用 HH:MM:SS PM格式(12时制):%tr%n", date);
// r的使用 HH:MM:SS PM格式(12时制):09:03:57 下午
System.out.printf("t的使用 HH:MM:SS格式(24时制):%tT%n", date);
// t的使用 HH:MM:SS格式(24时制):21:03:57
System.out.printf("R的使用 HH:MM格式(24时制):%tR", date);
// R的使用 HH:MM格式(24时制):21:03
System.out.println("\n------定义日期格式的转换符可以使日期通过指定的转换符生成新字符串-----");
// ------定义日期格式的转换符可以使日期通过指定的转换符生成新字符串-----
Date date2 = new Date();
System.out.println(String.format(Locale.US, "英文月份简称:%tb", date2));
// 英文月份简称:Apr
System.out.printf("本地月份简称:%tb%n", date2);
// 本地月份简称:四月
System.out.println(String.format(Locale.US, "英文月份全称:%tB", date2));
// 英文月份全称:April
System.out.printf("本地月份全称:%tB%n", date2);
// 本地月份全称:四月
System.out.println(String.format(Locale.US, "英文星期的简称:%ta", date2));
// 英文星期的简称:Wed
System.out.printf("本地星期的简称:%tA%n", date2);
// 本地星期的简称:星期三
System.out.printf("年的前两位数字(不足两位前面补0):%tC%n", date2);
// 年的前两位数字(不足两位前面补0):20
System.out.printf("年的后两位数字(不足两位前面补0):%ty%n", date2);
// 年的后两位数字(不足两位前面补0):16
System.out.printf("一年中的天数(即年的第几天):%tj%n", date2);
// 一年中的天数(即年的第几天):111
System.out.printf("两位数字的月份(不足两位前面补0):%tm%n", date2);
// 两位数字的月份(不足两位前面补0):04
System.out.printf("两位数字的日(不足两位前面补0):%td%n", date2);
// 两位数字的日(不足两位前面补0):20
System.out.printf("月份的日(前面不补0):%te \n", date2);
// 月份的日(前面不补0)
Date dateToTime = new Date();
System.out.printf("H的使用 2位数字24时制的小时(不足2位前面补0):%tH%n", dateToTime);
// H的使用 2位数字24时制的小时(不足2位前面补0):21
System.out.printf("I的使用 2位数字12时制的小时(不足2位前面补0):%tI%n", dateToTime);
// I的使用 2位数字12时制的小时(不足2位前面补0):09
System.out.printf("k的使用 2位数字24时制的小时(前面不补0):%tk%n", dateToTime);
// k的使用 2位数字24时制的小时(前面不补0):21
System.out.printf("l的使用 2位数字12时制的小时(前面不补0):%tl%n", dateToTime);
// l的使用 2位数字12时制的小时(前面不补0):9
System.out.printf("M的使用 2位数字的分钟(不足2位前面补0):%tM%n", dateToTime);
// M的使用 2位数字的分钟(不足2位前面补0):03
System.out.printf("S的使用 2位数字的秒(不足2位前面补0):%tS%n", dateToTime);
// S的使用 2位数字的秒(不足2位前面补0):57
System.out.printf("L的使用 3位数字的毫秒(不足3位前面补0):%tL%n", dateToTime);
// L的使用 3位数字的毫秒(不足3位前面补0):220
System.out.printf("N的使用 9位数字的毫秒数(不足9位前面补0):%tN%n", dateToTime);
// N的使用 9位数字的毫秒数(不足9位前面补0):220000000
System.out.println(String.format(Locale.US, "p的使用 小写字母的上午或下午标记(英):%tp", dateToTime));
// p的使用 小写字母的上午或下午标记(英):pm
System.out.printf("小写字母的上午或下午标记(中):%tp%n", dateToTime);
// 小写字母的上午或下午标记(中):下午
System.out.printf("z的使用 相对于GMT的RFC822时区的偏移量:%tz%n", dateToTime);
// z的使用 相对于GMT的RFC822时区的偏移量:+0800
System.out.printf("Z的使用 时区缩写字符串:%tZ%n", dateToTime);
// Z的使用 时区缩写字符串:CST
System.out.printf("s的使用 1970-1-1 00:00:00 到现在所经过的秒数:%ts%n", dateToTime);
// s的使用 1970-1-1 00:00:00 到现在所经过的秒数:1461157437
System.out.printf("Q的使用 1970-1-1 00:00:00 到现在所经过的毫秒数:%tQ%n", dateToTime);
// Q的使用 1970-1-1 00:00:00 到现在所经过的毫秒数:1461157437220
}
在Android中TextView.setText时,如果单独传入一个数字,很容易出错
转成格式化字符串,或者直接转字符串即可
mHighValue.setText(String.format("%d", high));