String#repeat来到Java吗?
JDK-8197594 (“ String#repeat”)在其“描述”中包括以下内容:“长期以来,一直要求一种用于重复字符序列的String
方法,没有后续操作。” 可以在JDK-8197594的“问题链接”中找到有关String类中用于重复字符序列的方法的兴趣,这些方法包括JDK-8055862 [“提供字符串重复方法”]和JDK-6984084 [“( str)n次重复java.lang.String的字符构造函数”]。 这两个链接问题都描述了在String
类中使用这种方法的动机。 进一步的证据包括在线问题,例如在Java 中重复字符串的 简单方法 , 如何 在Java 中重复字符串“ n”次? , 在Java中重复字符串的简单方法是什么? ,以及如何在Java编程中将字符串重复n次?
Guava通过其Strings.repeat(String,int)方法提供了此所需的行为,而Apache Commons Lang通过其StringUtils.repeat(String,int)提供了此功能。 此功能也可能在单个项目中实现了数百次或更多次 。 标准java.lang.String.repeat(String, int)
方法的可用性可以替代所有这些方法。
关于JDK-8197594的core-libs-dev JDK邮件列表的讨论提供了一些其他有趣的细节,这些细节可能会添加到Java的未来版本中。
Jim Laskey的消息中提到了一个有趣的观点,他在其中描述了该方法将提供的潜在性能改进。 具体来说,Laskey写道:“以jmh运行性能……表明这些方法比StringBuilder等效方法要快得多”,Laskey将此归因于“内存分配减少了”,“字符到字节数组的转换减少了”以及“金字塔复制与O相比更快( N)复制。” 由于这是开源的,在目前提出的实现是导致这些性能优势提供 。 对于感兴趣的人,上述两个开放源代码项目显然已经提供了其源代码[ Guava的Strings.repeat(String,int)和Apache Commons Lang的String repeat(String,int) ]。
Brian Goetz发布了在标准API中添加诸如String.repeat
的方法的第二个原因:将通过语句实现的通用功能转换为可组合的表达式。 Goetz解释说:“我对这类方法的主要动机是,将需要执行的内容作为_statements_(循环,if-then等)并将它们转换为_expressions_,这主要不是因为它们更紧凑,而是因为它们变得_composible_ 。” Goetz之前已经描述了表达式的优点,这是JEP草案中与Java中的开关表达式相关的主要动机之一。
用java.lang.String
上的一种新方法将字符序列重复指定的次数不会像其他许多新的API新增功能和新的语言功能那样繁重,但是它可以提供一些优点,例如不需要第三次方或自定义实现,改进的性能以及常用实现行为的标准化表示形式。 在撰写本文时, JDK-8197594未与特定的Java版本关联,而是标记为“ tbd_feature ”。
翻译自: https://www.javacodegeeks.com/2018/02/stringrepeat-coming-java.html
String#repeat来到Java吗?相关推荐
- 编写程序,测试字符串“你好,欢迎来到Java世界”的长度,将字符串的长度转换成字符串进行输出,并对其中的“Java”四个字母进行截取,输出截取字母以及它在字符串中的位置。
编写程序,测试字符串"你好,欢迎来到Java世界"的长度,将字符串的长度转换成字符串进行输出,并对其中的"Java"四个字母进行截取,输出截取字母以及它在字符串 ...
- JavaScript中带示例的String repeat()方法
JavaScript | 字符串repeat()方法 (JavaScript | String repeat() Method) The String.repeat() method in JavaS ...
- php 把java list对象转成数组,java_JSON的String字符串与Java的List列表对象的相互转换,在前端:
1.如果json是List对象 - phpStudy...
JSON的String字符串与Java的List列表对象的相互转换 在前端:1.如果json是List对象转换的,可以直接遍历json,读取数据. 2.如果是需要把前端的List对象转换为json传到 ...
- java string 数组 个数,Java - 定义一个接收String的方法,并返回一个整数数组,其中包含每个元音的数量...
(对不起提前q长 - 只是想详细说明!) 嗨,大家好, 我一直在努力让这段代码编译这么长时间,我已经到处研究过(包括在这里!)但似乎没有任何工作,我一直在收到错误.我不断调整我如何定义我的静态方法以及 ...
- intern string java_聊聊java String的intern
序 本文主要研究一下java String的intern String.intern() java.base/java/lang/String.java public final class Stri ...
- java list 转json 字符串_JSON的String字符串与Java的List列表对象的相互转换
1.JSON的String字符串与Java的List列表对象的相互转换 在前端: 1.如果json是List对象转换的,可以直接遍历json,读取数据. 2.如果是需要把前端的List对象转换为jso ...
- 异常处理:el表达式数据类型转换异常 Cannot convert B36 of type class java.lang.String to class java.lang.Long
异常处理:el表达式数据类型转换异常 Cannot convert B36 of type class java.lang.String to class java.lang.Long 参考文章: ( ...
- 为什么String中的Java hashCode()使用31作为乘数?
本文翻译自:Why does Java's hashCode() in String use 31 as a multiplier? Per the Java documentation, the h ...
- lava.lang.String数据转换为java.sql.Date
在JavaWeb编程中,往往涉及数据库,javaBean,前端数据数据类型不一致的问题 数据库和javaBean之间可以直接选择相对应的数据类型,而serverlet从前端获取的数据往往是String ...
最新文章
- 最新 30 道 Dubbo 面试题及答案
- android 牛人必修 ant 编译android工程
- nodejs-模块系统
- linux刷除U盘grub,删除linux系统出现grub rescue
- SQL:ISNULL
- php本地的调试安装,教你本地安装、运行、调试PHP程序
- Linux yum 安装MariaDB
- 信息学奥赛一本通(1237:求排列的逆序数)
- 【经验分享】如何将拍摄的照片制作成扫描件 PS+WORD教程
- mac开启HiDPI
- 车辆网之整车Can网络基本结构及转发机制
- 开源中国正式进军软件开发众包领域
- [IT名人堂]《人件》作者:汤姆.迪马可
- wps2016向程序发送命令_老司机帮您向程序发送命令时出现错误
【操作步骤】
的设置办法...
- 物品分类游戏html5,物品的用途分类教案
- JavaScript之caller和caller属性
- php 24字母和 数字进行转化
- 手机打不开html,如何解决手机浏览器打不开网页的问题,原来是这样的
- html语言设置网页名称,HTML语言范例
- IP-guard双机热备使用指南