Java高级之数据格式化
Runnable runnable =new Runnable(){
public void run(){
//123
}
}
变:
Runnable runnable =()->{
//123
}
“123”为多句代码,可以写上括号,如果仅一句,可以不写。
获得小数位数:
经测试,使用小数(1.01)通过使用“.”进行split操作后,得到的数组为空,原因在于String的split方法
public String[] split(String regex, int limit) { /* fastpath if the regex is a (1)one-char String and this character is not one of the RegEx's meta characters ".$|()[{^?*+\\", or (2)two-char String and the first char is the backslash and the second is not the ascii digit or ascii letter. */ char ch = 0; if (((regex.value.length == 1 && ".$|()[{^?*+\\".indexOf(ch = regex.charAt(0)) == -1) || (regex.length() == 2 && regex.charAt(0) == '\\' && (((ch = regex.charAt(1))-'0')|('9'-ch)) < 0 && ((ch-'a')|('z'-ch)) < 0 && ((ch-'A')|('Z'-ch)) < 0)) && (ch < Character.MIN_HIGH_SURROGATE || ch > Character.MAX_LOW_SURROGATE)) { ... } return Pattern.compile(regex).split(this, limit); }
if语句判断无法通过,因为不允许使用"."做split的regex字符;第2个条件明显长度只有1;第3个条件ch<55276或者ch>57344才满足。
运行到return语句,Pattern执行结果,获得空数据。
那么只能通过indexOf方法来获得小数位数了:
1位小数且小数第1位是0的(如1.0),显示整数;其他情况显示原小数(String默认会把1.10看成1.1)。
public static String get1BitData(double number) { String first = String.valueOf(number); String second = first.substring(first.indexOf(".")); if (second.length() > 1 && !second.endsWith("0")) { return String.valueOf(number); } return String.valueOf((int) number); }
取相应格式的小数:
- // 取一位整数
- System.out.println(new DecimalFormat("0").format(pi));// 3
- // 取一位整数和两位小数
- System.out.println(new DecimalFormat("0.00").format(pi));// 3.14
- // 取两位整数和三位小数,整数不足部分以0填补。
- System.out.println(new DecimalFormat("00.000").format(pi));// 03.142
- // 取所有整数部分
- System.out.println(new DecimalFormat("#").format(pi));// 3
- // 以百分比方式计数,并取两位小数
- System.out.println(new DecimalFormat("#.##%").format(pi));// 314.16%
- long c = 299792458;
- // 显示为科学计数法,并取五位小数
- System.out.println(new DecimalFormat("#.#####E0").format(c));// 2.99792E8
- // 显示为两位整数的科学计数法,并取四位小数
- System.out.println(new DecimalFormat("00.####E0").format(c));// 29.9792E7
- // 每三位以逗号进行分隔。
- System.out.println(new DecimalFormat(",###").format(c));// 299,792,458
- // 将格式嵌入文本
- System.out.println(new DecimalFormat("光速大小为每秒,###米。").format(c));
它们都是一种编程思想,目的是解耦。
A调用B,正常情况下是,创建B,再调用B,则A依赖B,并且使用完毕还要销毁B。
Ioc,A告诉容器要调用B,容器创建B,并通知A,然后A通过构造函数、属性和接口调用方式,获得B,再去调用B。
Di,A告诉容器要调用B,容器创建B,并通知A,然后A通过反射的方式,获得B,再去调用B。
AOP:Aspect Oriented Programming。面向切面编译,切面指某类的某方法的代码片断,切点(JoinPoint)指某类的某方法。AOP指通过动态注入的方式,将几处共用的代码片断,在使用时注入,使得代码维护更加便利。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
day09_request&response学习笔记
============================================================ 一、HttpServletResponse接口 学好HttpServletResponse与HttpServletRequest的关键是:理解HTTP协议。 Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。 (注意:request和response分别表示的是对象名,实际上不是对象) request和response对象既然代表请求和响应, 那我们要获取客户端提交过来的数据,只需要找request对象就行了。 要向容器(服务器)输出数据,只需要找response对象就行了。 因为每一的请求都会调用一次service(request,response)方法。 方法的形参request和response是由服务器创建的,在service执行之前就已经创建好了,分别是两个对象(是不需要new的,服务器帮你干了)。 1、响应消息行HTTP/1.1200OK HTTP/1.1 200...
- 下一篇
基于umeng官方php sdk v1.4,支持Laravel5以及Lumen5
安装 composer require zzl/umeng Laravel 5.* 配置 打开config目录下的app.php文件,找到provider,添加如下代码: 'provider' => [ Zzl\Umeng\UmengServiceProvider::class, ], 配置alias: 'aliases' => [ 'Umeng' => Zzl\Umeng\Facades\Umeng::class, ], 生成配置文件: php artisan vendor:publish 在配置文件umeng.php中填入appkey以及master_secret既可完成配置 在Lumen 5.*中配置 打开bootstrap目录下的app.php文件,注册provider: $app->register(Zzl\Umeng\UmengServiceProvider::class); 配置alias: class_alias('Zzl\Umeng\Facades\Umeng','Umeng'); 生成配置文件: php artisan vendor:publ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS关闭SELinux安全模块
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7设置SWAP分区,小内存服务器的救世主
- Hadoop3单机部署,实现最简伪集群
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Linux系统CentOS6、CentOS7手动修改IP地址
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池