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吗?相关推荐

  1. 编写程序,测试字符串“你好,欢迎来到Java世界”的长度,将字符串的长度转换成字符串进行输出,并对其中的“Java”四个字母进行截取,输出截取字母以及它在字符串中的位置。

    编写程序,测试字符串"你好,欢迎来到Java世界"的长度,将字符串的长度转换成字符串进行输出,并对其中的"Java"四个字母进行截取,输出截取字母以及它在字符串 ...

  2. JavaScript中带示例的String repeat()方法

    JavaScript | 字符串repeat()方法 (JavaScript | String repeat() Method) The String.repeat() method in JavaS ...

  3. php 把java list对象转成数组,java_JSON的String字符串与Java的List列表对象的相互转换,在前端: 1.如果json是List对象 - phpStudy...

    JSON的String字符串与Java的List列表对象的相互转换 在前端:1.如果json是List对象转换的,可以直接遍历json,读取数据. 2.如果是需要把前端的List对象转换为json传到 ...

  4. java string 数组 个数,Java - 定义一个接收String的方法,并返回一个整数数组,其中包含每个元音的数量...

    (对不起提前q长 - 只是想详细说明!) 嗨,大家好, 我一直在努力让这段代码编译这么长时间,我已经到处研究过(包括在这里!)但似乎没有任何工作,我一直在收到错误.我不断调整我如何定义我的静态方法以及 ...

  5. intern string java_聊聊java String的intern

    序 本文主要研究一下java String的intern String.intern() java.base/java/lang/String.java public final class Stri ...

  6. java list 转json 字符串_JSON的String字符串与Java的List列表对象的相互转换

    1.JSON的String字符串与Java的List列表对象的相互转换 在前端: 1.如果json是List对象转换的,可以直接遍历json,读取数据. 2.如果是需要把前端的List对象转换为jso ...

  7. 异常处理: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 参考文章: ( ...

  8. 为什么String中的Java hashCode()使用31作为乘数?

    本文翻译自:Why does Java's hashCode() in String use 31 as a multiplier? Per the Java documentation, the h ...

  9. lava.lang.String数据转换为java.sql.Date

    在JavaWeb编程中,往往涉及数据库,javaBean,前端数据数据类型不一致的问题 数据库和javaBean之间可以直接选择相对应的数据类型,而serverlet从前端获取的数据往往是String ...

最新文章

  1. 最新 30 道 Dubbo 面试题及答案
  2. android 牛人必修 ant 编译android工程
  3. nodejs-模块系统
  4. linux刷除U盘grub,删除linux系统出现grub rescue
  5. SQL:ISNULL
  6. php本地的调试安装,教你本地安装、运行、调试PHP程序
  7. Linux yum 安装MariaDB
  8. 信息学奥赛一本通(1237:求排列的逆序数)
  9. 【经验分享】如何将拍摄的照片制作成扫描件 PS+WORD教程
  10. mac开启HiDPI
  11. 车辆网之整车Can网络基本结构及转发机制
  12. 开源中国正式进军软件开发众包领域
  13. [IT名人堂]《人件》作者:汤姆.迪马可
  14. wps2016向程序发送命令_老司机帮您向程序发送命令时出现错误 【操作步骤】 的设置办法...
  15. 物品分类游戏html5,物品的用途分类教案
  16. JavaScript之caller和caller属性
  17. php 24字母和 数字进行转化
  18. 手机打不开html,如何解决手机浏览器打不开网页的问题,原来是这样的
  19. html语言设置网页名称,HTML语言范例
  20. IP-guard双机热备使用指南

热门文章

  1. 面试官:为什么 Spring Boot 的 jar 可以直接运行
  2. Spring框架-事务管理注意事项
  3. JVM调优总结(5):典型配置
  4. Spring Boot 2.0 正式发布
  5. idea如何安装lombok
  6. jQuery最简单的留言功能^-^
  7. IDEA开启Run Dashboard窗口
  8. jvm内存收集器总结(图片)
  9. mysql事务基础+基于innodb的行锁+间隙锁+如何锁定行
  10. 高级数据结构实现——自顶向下伸展树