当前位置: 首页 > 编程日记 > 正文

android String.format

资源创建:

<!-- 多参数验证 -->
    <string name="text">截止到:%1$tc\n销售量比去年增长了%2$d%%\n在这里我对所有奋斗的兄弟姐妹表示感谢\n对表现最优秀 的%3$s等伙伴我们予以奖励\n奖励为价值%4$-9.4e的新马泰游\n希望大家再接再厉额!</string>

java类中调用:

tv.setText(String.format(str,new Date(System.currentTimeMillis()),50,"周云、马玉、赵冬",123313.23123123));

输出结果:

JAVA String.format 方法使用介绍

1.对整数进行格式化:%[index$][标识][最小宽度]转换方式
        我们可以看到,格式化字符串由4部分组成,其中%[index$]的含义我们上面已经讲过,[最小宽度]的含义也很好理解,就是最终该整数转化的字符串最少包含多少位数字。我们来看看剩下2个部分的含义吧:

标识: 
'-'    在最小宽度内左对齐,不可以与“用0填充”同时使用
'#'    只适用于8进制和16进制,8进制时在结果前面增加一个0,16进制时在结果前面增加0x
'+'    结果总是包括一个符号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)
'  '    正值前加空格,负值前加负号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)
'0'    结果将用零来填充
','    只适用于10进制,每3位数字之间用“,”分隔
'('    若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(同‘+
’具有同样的限制)

转换方式:
d-十进制   o-八进制   x或X-十六进制

        上面的说明过于枯燥,我们来看几个具体的例子。需要特别注意的一点是:大部分标识字符可以同时使用。

        System.out.println(String.format("%1$,09d", -3123));
        System.out.println(String.format("%1$9d", -31
));
        System.out.println(String.format("%1$-9d", -31
));
        System.out.println(String.format("%1$(9d", -31
));
        System.out.println(String.format("%1$#9x", 5689
));

//
结果为:
//
-0003,123
//
      -31
//
-31      
//
     (31)
//   0x1639



2.对浮点数进行格式化%[index$][标识][最少宽度][.精度]转换方式
        我们可以看到,浮点数的转换多了一个“精度”选项,可以控制小数点后面的位数。

标识: 
'-'    在最小宽度内左对齐,不可以与“用0填充”同时使用
'+'    结果总是包括一个符号
'  '    正值前加空格,负值前加负号
'0'    结果将用零来填充
','    每3位数字之间用“,”分隔(只适用于fgG的转换)
'('
    若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(只适用于eEfgG的转换)

转换方式:
'e', 'E'  --  结果被格式化为用计算机科学记数法表示的十进制数
'f'          --  结果被格式化为十进制普通表示方式
'g', 'G'    --  根据具体情况,自动选择用普通表示方式还是科学计数法方式
'a', 'A'    --   结果被格式化为带有效位数和指数的十六进制浮点数



3.对字符进行格式化
        对字符进行格式化是非常简单的,c表示字符,标识中'-'表示左对齐,其他就没什么了。

4.对百分比符号进行格式化
       
看了上面的说明,大家会发现百分比符号“%”是特殊格式的一个前缀。那么我们要输入一个百分比符号该怎么办呢?肯定是需要转义字符的,但是要注意的是,在这里转义字符不是“\”,而是“%”。换句话说,下面这条语句可以输出一个“12%”:
System.out.println(String.format("%1$d%%", 12));

5.取得平台独立的行分隔符
        System.getProperty("line.separator")可以取得平台独立的行分隔符,但是用在format中间未免显得过于烦琐了。于是format函数自带了一个平台独立的行分隔符那就是
String.format("%n")。

6.对日期类型进行格式化
         以下日期和时间转换的后缀字符是为 't' 和 'T' 转换定义的。这些类型相似于但不完全等同于那些由 GNU date 和 POSIX strftime(3c) 定义的类型。提供其他转换类型是为了访问特定于 Java 的功能(如将 'L' 用作秒中的毫秒)。

以下转换字符用来格式化时间:

'H'     24 小时制的小时,被格式化为必要时带前导零的两位数,即 00 - 23。
'I'     12 小时制的小时,被格式化为必要时带前导零的两位数,即 01 - 12。
'k'     24 小时制的小时,即 0 - 23。
'l'     12 小时制的小时,即 1 - 12。
'M'     小时中的分钟,被格式化为必要时带前导零的两位数,即 00 - 59。
'S'     分钟中的秒,被格式化为必要时带前导零的两位数,即 00 - 60 ("60" 是支持闰秒所需的一个特殊值)。
'L'     秒中的毫秒,被格式化为必要时带前导零的三位数,即 000 - 999。
'N'     秒中的毫微秒,被格式化为必要时带前导零的九位数,即 000000000 - 999999999。
'p'     特定于语言环境的 上午或下午 标记以小写形式表示,例如 "am" 或 "pm"。使用转换前缀 'T' 可以强行将此输出转换为大写形式。
'z'     相对于 GMT 的 RFC 822 格式的数字时区偏移量,例如 -0800。
'Z'     表示时区缩写形式的字符串。Formatter 的语言环境将取代参数的语言环境(如果有)。
's'     自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的秒数,即 Long.MIN_VALUE/1000 与 Long.MAX_VALUE/1000 之间的差值。
'Q'     自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的毫秒数,即 Long.MIN_VALUE 与 Long.MAX_VALUE 之间的差值。

以下转换字符用来格式化日期:
'B'     特定于语言环境的月份全称,例如 "January" 和 "February"。
'b'     特定于语言环境的月份简称,例如 "Jan" 和 "Feb"。
'h'     与 'b' 相同。
'A'     特定于语言环境的星期几全称,例如 "Sunday" 和 "Monday"
'a'     特定于语言环境的星期几简称,例如 "Sun" 和 "Mon"
'C'     除以 100 的四位数表示的年份,被格式化为必要时带前导零的两位数,即 00 - 99
'Y'     年份,被格式化为必要时带前导零的四位数(至少),例如,0092 等于格里高利历的 92 CE。
'y'     年份的最后两位数,被格式化为必要时带前导零的两位数,即 00 - 99。
'j'     一年中的天数,被格式化为必要时带前导零的三位数,例如,对于格里高利历是 001 - 366。
'm'     月份,被格式化为必要时带前导零的两位数,即 01 - 13。
'd'     一个月中的天数,被格式化为必要时带前导零两位数,即 01 - 31
'e'     一个月中的天数,被格式化为两位数,即 1 - 31。

以下转换字符用于格式化常见的日期/时间组合。
'R'     24 小时制的时间,被格式化为 "%tH:%tM"
'T'     24 小时制的时间,被格式化为 "%tH:%tM:%tS"。
'r'     12 小时制的时间,被格式化为 "%tI:%tM:%tS %Tp"。上午或下午标记 ('%Tp') 的位置可能与语言环境有关。
'D'     日期,被格式化为 "%tm/%td/%ty"。
'F'     ISO 8601 格式的完整日期,被格式化为 "%tY-%tm-%td"。
'c'     日期和时间,被格式化为 "%ta %tb %td %tT %tZ %tY",例如 "Sun Jul 20 16:17:00 EDT 1969"。

引用:http://blog.csdn.net/weiyijijing/article/details/8082366 

转载于:https://www.cnblogs.com/wsfjlagr/p/3336190.html

相关文章:

【组队学习】【32期】数据可视化(Matplotlib)

数据可视化&#xff08;Matplotlib&#xff09; 航路开辟者&#xff1a;杨剑砺、杨煜、耿远昊、李运佳、居凤霞领航员&#xff1a;王万航海士&#xff1a;范歆琦、张文恺 基本信息 开源内容&#xff1a;https://github.com/datawhalechina/fantastic-matplotlib开源内容&…

没有完美的人或事

下面以苹果手机为例&#xff0c;说明一个问题当实际值与期望值不符合的时候&#xff0c;人会出现的感情状况 公众人物与普通人 像公众人物类的&#xff0c;在公众面前肯定要表现正式一点的&#xff0c;这个是必须的&#xff0c;这个是有非常大的影响力的。我们的期望值大于或等…

如何理解分时系统的四个特征

多路性 服务多个用户 独立性 各用户独立 及时性 当一个任务暂时不能执行&#xff0c;CPU如子弹上膛般立刻换上另一任务&#xff0c;决不空闲 交互性 即人机交互 分时操作系统服务多个用户&#xff0c;并且让每个用户觉得自己是唯一的用户&#xff08;它怎么做到这一点的&#x…

中国电子学会青少年编程能力等级测试图形化一级编程题:小狗进圈

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 小狗进圈 小狗非常听话&#xff0c;收到命令能在舞台上向右移动&#xff0c;如…

Swift 值类型和引用类型的内存管理

1、内存分配 1.1 值类型的内存分配 在 Swift 中定长的值类型都是保存在栈上的&#xff0c;操作时不会涉及堆上的内存。变长的值类型&#xff08;字符串、集合类型是可变长度的值类型&#xff09;会分配堆内存。 这相当于一个 “福利”&#xff0c;意味着你可以使用值类型更快速…

jquery获取浏览器宽高

满足获取各种高的需求 $(document).ready(function() { alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height()); //浏览器时下窗口文档的高度 alert($(document.body).height());//浏览器时下窗口文档body的高度 alert($(document.body).oute…

操作系统的管理功能

1.CPU/处理器管理 2.存储器/内存管理 3.文件管理 4.I/O设备管理 一般来讲为以上四大管理功能&#xff0c;如果有第五 5.作业管理

秦州:西瓜书 + 南瓜书 吃瓜系列 13. 降维与度量学习(上)

吃瓜教程——西瓜书南瓜书 Datawhale南瓜书是经典机器学习教材《机器学习》&#xff08;西瓜书&#xff09;的公式推导解析指南&#xff0c;旨在让在学习西瓜书的过程中&#xff0c;再也没有难推的公式&#xff0c;学好机器学习。 内容属性&#xff1a;机器学习&#xff08;理…

flash 入门课知识小结

一、 几种类型帧的小结&#xff1a;&#xff08;关键帧、空白关键帧、普通帧&#xff09;1. 特点 帧——是进行flash动画制作的最基本的单位&#xff0c;每一个精彩的flash动画都是由很多个精心雕琢的帧构成的&#xff0c;在时间轴上的每一帧都可以包含需要显示的所有内容&…

VUE解决微信签名,SPA微信invalid signature问题,完美处理

深度解决方案&#xff0c;包教不包会&#xff0c;只因为踩坑无数&#xff0c;希望大家能有所收获 前端小菜鸟&#xff0c;因为项目要对接微信的jssdk&#xff0c;对接就需要签名认证&#xff0c;但是无奈安卓和IOS各有各的坑&#xff0c;本篇文章只讨论签名&#xff0c;和一个分…

如何打开写好的jpetstore

1.停止正在占用8080端口的应用 打开cmd窗口&#xff0c;输入netstat -ano | find “:8080”&#xff0c;查到pid 输入tasklist /fi “pid eq pid”&#xff0c;查到应用的名字 打开任务管理器&#xff0c;停止应用 2.第二步就比较神奇了 打开tomcat的bin目录&#xff0c;先sh…

打通Fedora19的ssh服务

Fedora19的SSH服务是默认关闭的&#xff0c;安装后我们需要打通它。 首先&#xff0c;编辑/etc/ssh/sshd_config&#xff0c;把下面黑体字部分打开注释&#xff0c;如下&#xff1a; # $OpenBSD: sshd_config,v 1.89 2013/02/06 00:20:42 dtucker Exp $# This is the ssh…

使用hql动态创建对象问题

前段时间由于需求要添加报表数据&#xff0c;调整ireport后&#xff0c;打印pdf文件出现数据错位的情况&#xff0c;调试发现不是ireport问题&#xff0c;就查看了后台传送的数据&#xff0c;最后发现传送的对象属性值已经就是错位的&#xff0c;那就是获取对象时出的问题&…

秦州:西瓜书 + 南瓜书 吃瓜系列 14. 降维与度量学习(下)

吃瓜教程——西瓜书南瓜书 Datawhale南瓜书是经典机器学习教材《机器学习》&#xff08;西瓜书&#xff09;的公式推导解析指南&#xff0c;旨在让在学习西瓜书的过程中&#xff0c;再也没有难推的公式&#xff0c;学好机器学习。 内容属性&#xff1a;机器学习&#xff08;理…

从用户角度看,DBMS应当提供哪些功能?

1.定义&#xff1a;提供DDL&#xff0c;供用户使用数据库定义语言创建其想要建立的表&#xff0c;定义三级模式&#xff0c;两级映像。 2.操作&#xff1a;提供DML&#xff0c;供用户可以实现增删改查&#xff08;追加、删除、更新、查询&#xff09;等操作。 3.控制&#xff1…

groovy–运算符重载

Groovy支持运算符重载&#xff0c;各种运算符被映射到普通的java对象的方法调用&#xff0c;这就使得开发者可以利用运算符重载的优势来编写自己的Java或者groovy对象。 下面的表格描述了groovy中的操作符所映射到的方法&#xff1a; Operator Method a b a.plus(b) a – …

【组队学习】【32期】吃瓜教程——西瓜书+南瓜书

吃瓜教程——西瓜书南瓜书 航路开辟者&#xff1a;谢文睿、秦州领航员&#xff1a;陈伟峰航海士&#xff1a;谢文睿、秦州 基本信息 开源内容&#xff1a;https://github.com/datawhalechina/pumpkin-bookB 站视频&#xff1a;https://www.bilibili.com/video/BV1Mh411e7VU内…

关键字this引用

要点提示&#xff1a; 关键字this引用独享自身。他也可以在构造方法内部调用另一个类的其他构造方法。 关键字this是指向调用对象本身的引用名。可以用this关键字引用对象的实例成员。 复制代码 例如&#xff1a;下面a的代码使用this来显示地引用独享的radius以及调用他的getAr…

数据库系统DBS的特点

在数据库系统发明以前&#xff0c;人们使用文件系统来管理数据。文件系统具有以下不足&#xff1a; 1.数据冗余&#xff08;与数据共享相对&#xff09;和非一致性&#xff08;文件格式不相容&#xff09; 2.程序依赖于数据&#xff08;新任务要写新程序&#xff09; 3.数据孤立…

Linux 内核进程管理之进程ID

Linux 内核使用 task_struct 数据结构来关联所有与进程有关的数据和结构&#xff0c;Linux 内核所有涉及到进程和程序的所有算法都是围绕该数据结构建立的&#xff0c;是内核中最重要的数据结构之一。该数据结构在内核文件 include/linux/sched.h 中定义&#xff0c;在Linux 3.…

【青少年编程竞赛交流】12月份微信图文索引

12月份微信图文索引 由于“组队学习”这个公众号的功能主要是组织Datawhale社群中的学习者们每个月的组队学习&#xff0c;所以&#xff0c;我另外新建了这个微信公众号“青少年编程竞赛交流”&#xff0c;在这个公众号上分享有关青少年编程方面的知识&#xff0c;带小朋友们参…

获取BT节点信息bittorrent-discovery

2019独角兽企业重金招聘Python工程师标准>>> 获取BT节点信息bittorrent-discovery BT/磁力都是常见的P2P下载方式。用户作为一个节点node从其他用户node或者peer获取文件数据&#xff0c;以完成下载。bittorren-discovery脚本可以探测目标主机通过BT/磁力方式分享所…

面向对象方法综述(工具<方法<思维<价值观)

思想起源于上世纪六十年代&#xff08;和结构化方法一样&#xff09; 最早的OOPL&#xff1a;Simula67 最纯的OOPL&#xff1a;Smalltalk smalltalk的贡献&#xff1a;它在系统设计中强调对象概念的统一&#xff0c;引入对象&#xff0c;对象类&#xff0c;方法&#xff0c;实…

第二章例2-2

#include<stdio.h>int main(void){ printf("Programming is fun.\n"); printf("And programming in C is even morn fun!\n"); return 0;}转载于:https://www.cnblogs.com/jiangjiali/p/3352576.html

【组队学习】十二月微信图文索引

十二月微信图文索引 一、组队学习相关 周报&#xff1a; Datawhale组队学习周报&#xff08;第042周&#xff09;Datawhale组队学习周报&#xff08;第043周&#xff09;Datawhale组队学习周报&#xff08;第044周&#xff09;Datawhale组队学习周报&#xff08;第045周&…

shell编程--case判断

case基础语法&#xff1a;格式 case 变量名 invalue1)command;;value2)command;;*)commond;;esac在case程序中&#xff0c;可以在条件中使用|&#xff0c;表示或的意思&#xff0c; 比如 2|3)command;;脚本 [rootlynn-04 shell]# vim case.sh#!/bin/bash read -p "Ple…

【delphi】Byte数组与String类型的转换

string string AnsiString 长字符串&#xff0c;理论上长度不受限制&#xff0c;但其实受限于最大寻址范围2的32次方4G字节&#xff1b; 变量Str名字是一个指针&#xff0c;指向位于堆内存的字符序列&#xff0c;字符序列起始于Str[1]&#xff0c;Str[1]偏移负16个字节的空间…

VC解析XML--使用CMarkup类解析XML

经过今天尝试MFC解析XML串&#xff0c;也算有了不少收获&#xff0c;总结一下。 我是使用的CMarkup类对XML进行操作。 CMarkup好象都是先从一个xml文件里面把内容读出来&#xff0c;再进行解析&#xff0c;搞得我恨不得要把我的CString写到xml文件…

Spring原理总结

写在前面&#xff1a;技术常新&#xff0c;思想常存。 Spring全家桶过于庞大&#xff0c;学习时难以抓住重点&#xff0c;希望通过此文章&#xff0c;让大家更好地去学习这一框架技术。 Spring有两大内功&#xff1a;IoC容器和AOP。这两个东西是不管什么时候都不会改变的。即便…

尚国栋:金融风控贷款违约预测(天池学习赛)

尚国栋是华北电力大学数理系大三的学生&#xff0c;LSGO软件技术团队&#xff08;Dreamtech算法组&#xff09;成员&#xff0c;参加了多期Datawhale的组队学习&#xff0c;荣获多期优秀队长的称号。 希望参与我们线下组队学习的同学&#xff0c;可以在微信公众号后台回复 线下…