JDK 12附带紧凑数字格式

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

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

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

相关文章

php 怎么循环数组取有值的,php怎么循环数组取有值的-PHP问题

php 怎么循环数组取有值的1、使用foreach或者while的,利用这两个语法结构来输出有值的项或删除数组中的空元素,简单代码如下:$v){if( $v ){echo $arr[$k];}else{// unset( $arr[$k] );}}?>foreach是将当前操作的数组进行copy,…

【渝粤题库】广东开放大学 经济学基础 形成性考核

选择题 题目:微观经济学的中心理论是( ) 答案: A、价值理论 B、价格理论 C、分配理论 D、生产理论 题目:作为经济学的一个分支,微观经济学主要研究( ) 答案: A、国…

【渝粤题库】广东开放大学 计算机应用基础(专科) 形成性考核

选择题 题目: 在Windows中,下图所示的5个鼠标指针状态的正确描述依次是________。 题目:使用"格式刷”按钮,可以进行___________操作。 题目:在Word编辑状态,可以使插入点快速移动到文档首部的组合键_…

高性能mysql 聚簇索引,高性能MySQL笔记-第5章Indexing for High Performance-005聚集索引...

一、聚集索引介绍1.什么是聚集索引?InnoDB’s clustered indexes actually store a B-Tree index and the rows together in the same structure.2.为什么一张表只能一个聚集索引?When a table has a clustered index, its rows are actually stored in …

【渝粤题库】广东开放大学社会学概论形成性考核

选择题 题目:我国职业分层的基本特点是:职业地位的高低主要取决于()。 题目:()标示作为控制途径的社会规范的严密程度。 题目:在各种社会制度中,除了经济制度外&#xff…

【渝粤题库】陕西师范大学151213 公司战略与风险管理作业(专升本)

《内部控制与风险管理》作业 一、单选题 1.1992年,COSO发布了著名的( )。 2.下列选项中,被称为“萨班斯法案”中最难操作、最复杂、耗费成本最高的一个条款的是( )。 3.根据基本规定,规范企业内…

英特尔 至强 单核计算性能_使用英特尔性能计数器调整垃圾收集

英特尔 至强 单核计算性能介绍 我不得不承认我很震惊。 确实,当我意识到这个出现的日历帖子将涉及垃圾收集时,我感到非常震惊。 GC的主题引起了Java倡导者和那些认为内存管理应该是手动的人的热情。 撰写了许多文章,内容涉及看起来奇怪的命令…

mppt多峰追踪MATLAB仿真,基于光伏功率等效面积法的多峰最大功率追踪控制方法...

0引言在光伏系统实际应用中,由于天上移动的云朵、电池板累积的灰尘以及城镇中周围建筑物等的影响,光伏阵列在运行过程中总会受到不同程度的阴影遮挡,太阳能电池板的P-U曲线会受到影响出现多个峰值点。传统的MPPT控制方法在电池板没受到局部阴影影响的情况下可以有效的追踪到电池…

【渝粤题库】陕西师范大学163208 饭店管理 作业

《饭店管理》作业 名词解释 1、饭店星级制 2、品牌忠诚度 3、指挥职能 4、风险型决策 5、饭店全面质量管理 6、饭店形象识别系统(CIS) 7、饭店市场细分 8、饭店产品 9、单一性需要 10、社会性消费动机 11、决策职能 12、因果分析图法 13、知名度 14、客房…

【渝粤题库】陕西师范大学165104 组织行为学原理 作业(高起专)

《组织行为学原理》作业 一、单项选择题 1.同一个人穿横条纹的衣服会显得胖些,穿竖条纹的衣服会显得瘦些。这种现象称之为____。 A适应 B对比 C敏感化 D感受性降低 2.人们以自己所具有的品质为依据去判断别人的品质&am…

PHP应用GD2函数填充几何图形,使用GD2函数绘制几何图形(PHP图形图像的典型应用教程4)...

使用GD2函数绘制几何图形(PHP图形图像的典型应用教程4)本篇主要讲解使用GD2函数实现几何图形的绘制,首先我们需要的事创建一个图像,在之前的文章中我们就说过了,创建图像是所有图像操作的第一步,然后再背景上根据坐标点绘制图形轮…

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

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

【渝粤题库】陕西师范大学200161 文字学概论 作业

《文字学概论》作业 一、单选题 1、原始社会陶器上的图形符号刻划是以( )为代表的。 A 仰韶文化 B 马家窑文化 C 良渚文化 D 大汶口文化 2、下列各字中不属于象形字的是( )。 A十 B小 C羊 D未 3、“画成弃物 ,随体诘屈”,是许慎给…

oracle 调整dbw0,求助:DBW的内存占用率高,可能是什么原因?

没人遇到这样的问题吗?补充一个现象,v$session中"SQL*Net message from client"很多,下面是随便选择一个时间点查到的数据:SQL> select t.EVENT, count(1) from v$session t group by t.EVENT;EVENT …

【渝粤题库】陕西师范大学200601 英语报刊阅读

《报刊阅读》作业 Translate the following words into Chinese 1.International Herald Tribune 2.Secretary of State 3.Justice Department 4.Cult 5.Catholic Church 6.Bosnia 7.The Netherlands 8.EU 9.FBI 10.UNESCO 11.The Commonwealth 12.Speaker 13.constitutional…

【渝粤题库】陕西师范大学200971教育经济学 作业(专升本、高起本)

《教育经济学》作业 一、单选题 1.我国多数学者认为,应该把教育经济学隶属于经济科学体系,属于( )。 A.宏观经济学 B.微观经济学 C.部门经济学 D.产业经济学 2.教育经济学是现代经济和现代教育的产物,它在西方萌芽于20世纪20年代,形成于( &am…

oracle数据库安装HotSpot,安装Oracle数据库软件遭遇诡异的HotSpot Virtual Machine Error : 11报错...

虽然也装了很多次的数据库了,可是偶尔还是会碰见一些很无语的错误,前两天在RHEL5.0上安装Oracle 10g 10.2.0.1,起图形后点击下虽然也装了很多次的数据库了,可是偶尔还是会碰见一些很无语的错误,前两天在RHEL5.0上安装O…

jdk8lambda_JDK8 lambda的会话指南–术语表

jdk8lambda上次出现…我写了一篇与JDK8为我们提供的新方法有关的文章。 最令我兴奋的功能是lambda。 我必须承认,在即将成为浪子的第一年(在此期间,我使用C#进行了开发),我喜欢LINQ和它可以做的漂亮&#x…

【渝粤题库】陕西师范大学202041 国际经济学 作业(专升本)

《国际经济学》作业 一.判断题 1.重商主义认为每个国家应该努力实现出口等于进口的平衡贸易 2. 比较优势原理只能应用于简单的两国模型中,而不能应用于现实中众多国家与贸易的情况。 3.一般来说…