Java高级之数据格式化

简介: Labmda表达式:Runnable runnable =new Runnable(){    public void run(){        //123        }}变:Runnable runnable =()->{        //123    }“123”为多句代码,可以写上括号,如果仅一句,可以不写。
Labmda表达式:

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);
	}


取相应格式的小数:

  1.         // 取一位整数  
  2.         System.out.println(new DecimalFormat("0").format(pi));// 3  
  3.         // 取一位整数和两位小数  
  4.         System.out.println(new DecimalFormat("0.00").format(pi));// 3.14  
  5.         // 取两位整数和三位小数,整数不足部分以0填补。  
  6.         System.out.println(new DecimalFormat("00.000").format(pi));// 03.142  
  7.         // 取所有整数部分  
  8.         System.out.println(new DecimalFormat("#").format(pi));// 3  
  9.         // 以百分比方式计数,并取两位小数  
  10.         System.out.println(new DecimalFormat("#.##%").format(pi));// 314.16%  
  11.   
  12.         long c = 299792458;  
  13.         // 显示为科学计数法,并取五位小数  
  14.         System.out.println(new DecimalFormat("#.#####E0").format(c));// 2.99792E8  
  15.         // 显示为两位整数的科学计数法,并取四位小数  
  16.         System.out.println(new DecimalFormat("00.####E0").format(c));// 29.9792E7  
  17.         // 每三位以逗号进行分隔。  
  18.         System.out.println(new DecimalFormat(",###").format(c));// 299,792,458  
  19.         // 将格式嵌入文本  
  20.         System.out.println(new DecimalFormat("光速大小为每秒,###米。").format(c));  


Ioc反转和Di注入的可用容器有Spring、JBoss、Ejb等。

它们都是一种编程思想,目的是解耦。

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指通过动态注入的方式,将几处共用的代码片断,在使用时注入,使得代码维护更加便利。

目录
相关文章
|
Java API 开发工具
【Azure Developer】Java代码实现获取Azure 资源的指标数据却报错 "invalid time interval input"
在使用 Java 调用虚拟机 API 获取指标数据时,因本地时区设置非 UTC,导致时间格式解析错误。解决方法是在代码中手动指定时区为 UTC,使用 `ZoneOffset.ofHours(0)` 并结合 `withOffsetSameInstant` 方法进行时区转换,从而避免因时区差异引发的时间格式问题。
501 4
|
数据采集 JSON Java
Java爬虫获取1688店铺所有商品接口数据实战指南
本文介绍如何使用Java爬虫技术高效获取1688店铺商品信息,涵盖环境搭建、API调用、签名生成及数据抓取全流程,并附完整代码示例,助力市场分析与选品决策。
|
数据采集 存储 前端开发
Java爬虫性能优化:多线程抓取JSP动态数据实践
Java爬虫性能优化:多线程抓取JSP动态数据实践
|
自然语言处理 Java 关系型数据库
Java|小数据量场景的模糊搜索体验优化
在小数据量场景下,如何优化模糊搜索体验?本文分享一个简单实用的方案,虽然有点“土”,但效果还不错。
455 0
|
前端开发 JavaScript Java
java常用数据判空、比较和类型转换
本文介绍了Java开发中常见的数据处理技巧,包括数据判空、数据比较和类型转换。详细讲解了字符串、Integer、对象、List、Map、Set及数组的判空方法,推荐使用工具类如StringUtils、Objects等。同时,讨论了基本数据类型与引用数据类型的比较方法,以及自动类型转换和强制类型转换的规则。最后,提供了数值类型与字符串互相转换的具体示例。
1077 3
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
745 16
|
存储 Java
Java LocalDateTime与hutool DateUtil实现秒转换为时分秒格式化展示。
注意:以上代码示例仅适合于处理小于24小时内(86400s) 总积 因 LocalDateTime 和 Local Time 不支持超过24小时表达而 huo tool示例虽然理论上支持但未考虑超过24小时情况下可能出现负值等异常情况处理细节需用户自行添加相关逻辑以确保正确性.
754 7
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
传感器 分布式计算 安全
Java 大视界 -- Java 大数据在智能安防入侵检测系统中的多源数据融合与分析技术(171)
本文围绕 Java 大数据在智能安防入侵检测系统中的应用展开,剖析系统现状与挑战,阐释多源数据融合及分析技术,结合案例与代码给出实操方案,提升入侵检测效能。
|
存储 NoSQL Java
使用Java和Spring Data构建数据访问层
本文介绍了如何使用 Java 和 Spring Data 构建数据访问层的完整过程。通过创建实体类、存储库接口、服务类和控制器类,实现了对数据库的基本操作。这种方法不仅简化了数据访问层的开发,还提高了代码的可维护性和可读性。通过合理使用 Spring Data 提供的功能,可以大幅提升开发效率。
559 21