jdk11 jdk12_JDK 12附带紧凑数字格式

jdk11 jdk12

JDK 12 Early Access Build 24引入了对紧凑数字格式的支持 。 JDK-8188147(紧凑数字格式支持)CSR的“摘要”是简单的句子,“添加了对JDK中的紧凑/短数字格式的支持。” 同一CSR还提供了详细的“解决方案”部分,该部分提供了为每个语言环境以多种紧凑形式提供数字以及添加到JDK以支持该功能(新类,新枚举,新方法等)的构造/ API的背景。

每个语言环境中数字的紧凑和简短格式的表示均基于Unicode公共语言环境数据存储库(CLDR) 。 新添加的类java.text.CompactNumberFormat具有类级别的Javadoc注释 ,这些注释提供了大量有关如何以“短”和“长”紧凑型数字格式表示数字的详细信息。 该类的Javadoc注释还指定了与自定义数字格式相关的紧凑数字模式,格式,解析和舍入(默认情况下为RoundingMode.HALF_EVEN )。

Nishit Jain在要求审查对JDK 12添加紧凑数字格式的请求中写道:

现有的NumberFormat API为格式化和解析数字提供基于语言环境的支持,其中包括格式化小数,百分数,货币等,但是缺少将数字格式化为人类可读或紧凑形式的支持。 此RFE添加了该功能,以紧凑格式格式化十进制数(例如,在en_US语言环境中为1000-> 1K,1000000-> 1M),这对于显示空间有限的环境很有用,因此可以显示格式化的字符串在那个有限的空间里。 它是由LDML的紧凑数字格式规范定义的。

http://unicode.org/reports/tr35/tr35-numbers.html#Compact_Number_Formats

通过代码示例来了解紧凑的数字格式可能是最容易的。 以下类( CompactNumberFormatDemo )是针对JDK 12 Early Access Build 24编译和执行的。

package dustin.examples.jdk12.format;  import static java.lang.System.out;  import java.text.NumberFormat;  
import java.util.Locale;  /** * Demonstrate Compact Number Format support added to * JDK 12 as of Early Access Build 24 (see also * JDK-8177552: Compact Number Formatting support). */  
public class CompactNumberFormatDemo  
{  private static void demonstrateCompactNumberFormatting(final long numberToFormat)  {  final NumberFormat numberFormatDefault  = NumberFormat.getCompactNumberInstance();  final NumberFormat numberFormatUsLong  = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.LONG);  final NumberFormat numberFormatUkShort  = NumberFormat.getCompactNumberInstance(Locale.UK, NumberFormat.Style.SHORT);  final NumberFormat numberFormatUkLong  = NumberFormat.getCompactNumberInstance(Locale.UK, NumberFormat.Style.LONG);  final NumberFormat numberFormatFrShort  = NumberFormat.getCompactNumberInstance(Locale.FRANCE, NumberFormat.Style.SHORT);  final NumberFormat numberFormatFrLong  = NumberFormat.getCompactNumberInstance(Locale.FRANCE, NumberFormat.Style.LONG);  final NumberFormat numberFormatGrShort  = NumberFormat.getCompactNumberInstance(Locale.GERMANY, NumberFormat.Style.SHORT);  final NumberFormat numberFormatGrLong  = NumberFormat.getCompactNumberInstance(Locale.GERMANY, NumberFormat.Style.LONG);  final NumberFormat numberFormatItShort  = NumberFormat.getCompactNumberInstance(Locale.ITALY, NumberFormat.Style.SHORT);  final NumberFormat numberFormatItLong  = NumberFormat.getCompactNumberInstance(Locale.ITALY, NumberFormat.Style.LONG);  out.println("Demonstrating Compact Number Formatting on '" + numberToFormat + "':");  out.println("\tDefault:  " + numberFormatDefault.format(numberToFormat));  out.println("\tUS/Long:  " + numberFormatUsLong.format(numberToFormat));  out.println("\tUK/Short: " + numberFormatUkShort.format(numberToFormat));  out.println("\tUK/Long:  " + numberFormatUkLong.format(numberToFormat));  out.println("\tFR/Short: " + numberFormatFrShort.format(numberToFormat));  out.println("\tFR/Long:  " + numberFormatFrLong.format(numberToFormat));  out.println("\tGR/Short: " + numberFormatGrShort.format(numberToFormat));  out.println("\tGR/Long:  " + numberFormatGrLong.format(numberToFormat));  out.println("\tIT/Short: " + numberFormatItShort.format(numberToFormat));  out.println("\tIT/Long:  " + numberFormatItLong.format(numberToFormat));  }  /** * Main demonstration executable. * @param arguments Command-line arguments: none expected. */  public static void main(final String[] arguments)  {  demonstrateCompactNumberFormatting(15);  demonstrateCompactNumberFormatting(150);  demonstrateCompactNumberFormatting(1500);  demonstrateCompactNumberFormatting(15000);  demonstrateCompactNumberFormatting(150000);  demonstrateCompactNumberFormatting(1500000);  demonstrateCompactNumberFormatting(15000000);  }  
}

执行后,以上代码将以下内容写入标准输出:

Demonstrating Compact Number Formatting on '15':Default:  15US/Long:  15UK/Short: 15UK/Long:  15FR/Short: 15FR/Long:  15GR/Short: 15GR/Long:  15IT/Short: 15IT/Long:  15
Demonstrating Compact Number Formatting on '150':Default:  150US/Long:  150UK/Short: 150UK/Long:  150FR/Short: 150FR/Long:  150GR/Short: 150GR/Long:  150IT/Short: 150IT/Long:  150
Demonstrating Compact Number Formatting on '1500':Default:  2KUS/Long:  2 thousandUK/Short: 2KUK/Long:  2 thousandFR/Short: 2 kFR/Long:  2 millierGR/Short: 1.500GR/Long:  2 TausendIT/Short: 1.500IT/Long:  2 mille
Demonstrating Compact Number Formatting on '15000':Default:  15KUS/Long:  15 thousandUK/Short: 15KUK/Long:  15 thousandFR/Short: 15 kFR/Long:  15 milleGR/Short: 15.000GR/Long:  15 TausendIT/Short: 15.000IT/Long:  15 mila
Demonstrating Compact Number Formatting on '150000':Default:  150KUS/Long:  150 thousandUK/Short: 150KUK/Long:  150 thousandFR/Short: 150 kFR/Long:  150 milleGR/Short: 150.000GR/Long:  150 TausendIT/Short: 150.000IT/Long:  150 mila
Demonstrating Compact Number Formatting on '1500000':Default:  2MUS/Long:  2 millionUK/Short: 2MUK/Long:  2 millionFR/Short: 2 MFR/Long:  2 millionGR/Short: 2 Mio.GR/Long:  2 MillionIT/Short: 2 MlnIT/Long:  2 milione
Demonstrating Compact Number Formatting on '15000000':Default:  15MUS/Long:  15 millionUK/Short: 15MUK/Long:  15 millionFR/Short: 15 MFR/Long:  15 millionGR/Short: 15 Mio.GR/Long:  15 MillionenIT/Short: 15 MlnIT/Long:  15 milioni

通过Early Access Build 24添加到JDK 12的紧凑数字格式支持允许格式化和解析以语言环境特定的“长”或“短”紧凑形式的数字表示形式。

翻译自: https://www.javacodegeeks.com/2019/01/compact-number-formatting-comes-jdk-12.html

jdk11 jdk12

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/332858.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全连接层 时间复杂度_神经网络全连接层(3)

CNN网络基础结构神经网络-全连接层(3)上一回我们聊完了算法,这回我们正式开始写代码。上回在做公式推导的时候,我们实际上只是针对一个数据样本进行推导,而实际中,计算和训练都是一批一批完成的。大多数机器学习训练都有batch的概…

line和spline_探索适用于Apache Spark的Spline Data Tracker和可视化工具(第1部分)

line和spline最近引起我注意的一个有趣且很有希望的开源项目是Spline ,它是由Absa维护的Apache Spark数据沿袭跟踪和可视化工具。 该项目由两部分组成:一个在驱动程序上工作的Scala库,该库通过分析Spark执行计划来捕获数据沿袭,以…

MacBook如何快速显示桌面

1.触控板中张开拇指和其它三指 2.通过触发角来快速显示桌面

怎么把word里面虚线变成实线_弱电不会制作cad图,花3分钟看完,只要会用WORD保证你能画出来...

今天我要给你介绍的就是Microsoft Office Visio是Microsoft Office 套件之一。安装Visio之后,可以类比Word的操作方法一样来使用,不过,就是比在Word里画图、修改更方便,功能更强大。特别是在做技术路线图、各种图表的绘图&#xf…

MacBook如何设置分屏浏览的快捷键

MacBook的系统自身无法设置,必须安装第三方软件才能设置,例如:BetterAndBetter、Magnet、BetterSnapTool 等。 BetterAndBetter 的设置,如下图所示:

api自动化测试_API测试和自动化101:基本指南

api自动化测试API代表A pplication P AGC软件我覆盖整个院落。 通常,API用于通过使用任何通信方式来促进两个不同应用程序之间的交互。 在网络上使用API​​时,我们将其称为“ Web服务”。 近年来,API已成为编程的Struts。 与在应用程序中一样…

web.config连接mysql_web.config中配置数据库连接的方式

在网站开发中,数据库操作是经常要用到的操作,ASP.NET中一般做法是在web.config中配置数据库连接代码,然后在程序中调用数据库连接代码,这样做的好处就是当数据库连接代码需要改变的时候,我们只要修改web.config中的数据…

BetterAndBetter(BAB)的使用详解

文章目录多指轻点时防止左键点击规则管理重置全部设置和规则多指轻点时防止左键点击 在正常情况下按下触控板的左键,使用鼠标选择好文本后,松开触控板的左键,就已经退出文本选择模式了,此时移动鼠标应该是不会影响到已经选择的文…

gradle使用maven_使用Gradle – 2019版从Travis可靠发布到Maven Central

gradle使用maven得益于在2018年和2019年末实现的显式登台存储库创建功能集,使您(自动)从Travis(不仅是)发布到Maven Central更加可靠。 背景 如果您仅想获取有关如何使工件从Travis发行的信息更可靠的信息&#xff0c…

mysql 事件 day hour_Mysql事件调度器(Event Scheduler)

Mysql中的事件调度器Event Scheduler类似于linux下的crontab计划任务的功能,它是由一个特殊的时间调度线程执行的一、查看当前是否开启了event scheduler三种方法:1) SHOW VARIABLES LIKE ‘event_scheduler’;2) SELECT event_scheduler;3) SHOW PROCESSLIST;(是否有State为&a…

2020年全国儿童青少年总体近视率为52.7%,比上年上升2.5%播

2021年7月13日,国家卫健委召开新闻发布会介绍儿童青少年近视防控和暑期学生健康有关情况。国家卫健委疾控局副局长再那吾东玉山介绍,2020年上半年全民居家抗疫减少了户外活动和放松眼睛的时间,对近视防控工作带来了挑战。为全面评估近视率的情…

精简jdk包_在JDK 12精简数字格式中使用最小分数数字

精简jdk包帖子“ 紧凑数字格式出现在JDK 12中 ”演示了对JDK 12中 NumberFormat的支持,以支持紧凑数字格式 。 该帖子中显示的示例仅使用NumberFormat的实例,这些实例是通过调用NumberFormat的新重载getCompactNumberInstance(-)方法返回的,因…

mysql insert limit_Mysql Limit 调优

建表与插入数据SQL对比基本数据创建表CREATE TABLE student(id int(10) NOT NULL AUTO_INCREMENT,name varchar(25) DEFAULT NULL,age tinyint(2) DEFAULT NULL,live varchar(255) DEFAULT NULL,PRIMARY KEY (id)) ;批量插入1百万条数据DROP PROCEDURE IF EXISTS insert_Stu;DE…

预防近视的方法

推荐的方法里面有角膜塑形镜,也就是OK镜,还有低浓度阿托品、补光仪、离焦软镜、离焦框架眼镜等,阿托品离焦眼镜

spoon java_如何以及为什么使用Spoon分析,生成和转换Java代码

spoon javaSpoon是分析,生成和转换Java代码的工具。 在本文中,我们将看到通过使用以编程方式处理代码的技术可以实现什么。 我认为这些技术不是很为人所知或使用,这很遗憾,因为它们可能非常有用。 谁知道,即使您不想使…

下列支持mysql中文字符_MySQL中文支持问题

0. 本文目的让MySQL支持中文1. 测试环境Windows XP sp2,MySQL Server 5.1,MySQL Administrator 1.2.172. 操作步骤1)修改数据库的默认字符集(开始菜单) - MySQL - MySQL Server 5.1 - MySQL Server Instance Config Wizard:- Reconfigure Ins…

异常(Exception)的学习

1.Throwsable 的两个子类 Exception 和 Error 2.Exception 这是编译期异常,可以捕获处理 3.RuntimeException 表示运行期间的异常,它是 Exception 的子类 4.Error 这是程序错误,不可捕获处理。例如,内存溢出 5.throws 关键字&…

recorder_将Java Flight Recorder与OpenJDK 11一起使用

recorderJava Flight Recorder(JFR)曾经是Oracle JDK的商业附加组件。 由于它最近与Java Mission Control一起开源,因此使用OpenJDK 11的每个人现在都可以免费使用此出色的工具对Java应用程序进行故障排除。 JFR以前是专有解决方案&#xff0…

mysql 酒店管理设计_酒店管理系统的设计与实现(Myeclipse,MySQL)

酒店管理系统的设计与实现(Myeclipse,MySQL)(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文12000字,程序代码,MySQL数据库)本系统是一个酒店管理系统,以Java Web技术为基础,采用MVC设计模式,利用MyEclipse编程平台结合MySQL数据库&…

可以在循环体内声明局部变量吗?

循环体声明的局部变量,第一次创建后,后面每次循环就不会再创建了。因为 JVM 在执行创建局部变量代码时,会先查询是否存在同名的局部变量,若存在则不会创建。如果有赋值,则直接删除旧的数据,保存新的数据&am…