在“ 使用JDK 11的Java字符串上的新方法 ”和“ String#repeat即将加入Java? ”,我讨论了JDK 11引入Java String的六个新方法。

可用的早期访问JDK 11构建已经包含了这些新方法,在这篇文章中,我将使用其中的一种早期访问构建对其进行演示。

我正在使用OpenJDK JDK 11 Early Access Build 20来编译和运行本文中显示的示例。

本文通过OpenJDK JDK 11 Early Access Build 20演示了为JDK 11添加到String的六个方法:

  • String.repeat(int)
  • String.lines()
  • String.strip()
  • String.stripLeading()
  • String.stripTrailing()
  • String.isBlank()

GitHub上提供了本文中演示的示例的源代码。

String.repeat(int)

自从在Groovy中体验到String.repeat(int)方法以来,该函数便提供了我希望在Java中看到的便捷功能。 顾名思义,此方法重复int参数提供的String次数。 将来在生成简单演示并将其用于本示例时,我可能会经常使用此方法。 下一个代码清单演示了如何使用String.repeat(int)来为演示输出轻松生成标头分隔符。

使用String.repeat(int)

/*** Write provided {@code String} in header. Note that this* implementation uses {@code String.repeat(int)}.** @param headerText Title of header.*/
private static void writeHeader(final String headerText)
{final String headerSeparator = "=".repeat(headerText.length()+4);out.println("\n" + headerSeparator);out.println("= " + headerText + " =");out.println(headerSeparator);
}

writeHeader(String)方法使用String.repeat(int)轻松地从“ = ”字符生成“标题分隔符”行,足以覆盖提供的headerText长度和4个其他字符,以允许额外的“ = ”和额外的空间在“标题文本”的每一侧。 本文中的所有其他演示示例都使用writeHeader(String)方法,因此将通过这些示例进行演示。

String.lines()

String.lines()方法拆分由其行终止符在其上调用的String ,并返回由这些行终止符划分的Strings Stream

使用String.lines()

/*** Demonstrate method {@code String.lines()} added with JDK 11.*/
public static void demonstrateStringLines()
{final String originalString = prepareStringWithLineTerminators();final String stringWithoutLineSeparators= originalString.replaceAll("\\n", "\\\\n");writeHeader("String.lines() on '"  + stringWithoutLineSeparators  + "'");final Stream<String> strings = originalString.lines();strings.forEach(out::println);
}

输出示例显示在下一个屏幕快照中。

String.strip()/ String.stripLeading()/ String.stripTrailing()

String.strip()String.stripLeading()String.stripTrailing()方法修剪目标String的正面,背面或正面和背面的空白(由Character.isWhiteSpace()确定) 。

使用String.strip()/ String.stripLeading()/ String.stripTrailing()

/*** Demonstrate method {@code String.strip()} added with JDK 11.*/
public static void demonstrateStringStrip()
{final String originalString = prepareStringSurroundedBySpaces();writeHeader("String.strip() on '" + originalString + "'");out.println("'" + originalString.strip() + "'");
}/*** Demonstrate method {@code String.stripLeading()} added with JDK 11.*/
public static void demonstrateStringStripLeading()
{final String originalString = prepareStringSurroundedBySpaces();writeHeader("String.stripLeading() on '" + originalString + "'");out.println("'" + originalString.stripLeading() + "'");
}/*** Demonstrate method {@code String.stripTrailing()} added with JDK 11.*/
public static void demonstrateStringStripTrailing()
{final String originalString = prepareStringSurroundedBySpaces();writeHeader("String.stripTrailing() on '" + originalString + "'");out.println("'" + originalString.stripTrailing() + "'");
}

执行上述代码后,输出看起来像下一个屏幕快照中所示。

String.isBlank()

String.isBlank()方法指示目标String是否为空或仅包含由Character.isWhitespace(int)确定的空格字符。

使用String.isBlank()

/*** Demonstrate method {@code String.isBlank()} added with JDK 11.*/
public static void demonstrateStringIsBlank()
{writeHeader("String.isBlank()");final String emptyString = "";out.println("Empty String -> " + emptyString.isBlank());final String onlyLineSeparator = System.getProperty("line.separator");out.println("Line Separator Only -> " + onlyLineSeparator.isBlank());final String tabOnly = "\t";out.println("Tab Only -> " + tabOnly.isBlank());final String spacesOnly = "   ";out.println("Spaces Only -> " + spacesOnly.isBlank());
}

下一个屏幕快照中显示了执行此代码的示例。

上面显示了代码的一些方法称为“ helper”方法,可以在GitHub上看到。

添加到JDK 11的String中的方法是很小的添加,但是与过去相比,与Java String相关的某些“演示”任务将变得更加容易,并减少了对第三方库的需求。

翻译自: https://www.javacodegeeks.com/2018/07/applying-new-jdk-11-string-methods.html

应用新的JDK 11字符串方法相关推荐

  1. switch字符串jdk_应用新的JDK 11字符串方法

    switch字符串jdk 在" 使用JDK 11的Java字符串上的新方法 "和" String#repeat即将加入Java? ",我讨论了JDK 11引入J ...

  2. 新的JDK 11文件方法isSameContent()

    已经建议通过JDK-8202285将名为isSameContents()方法添加到JDK 11中的Files类中[[(fs)向文件中添加用于比较文件内容的方法"]. 由Joe Wang提议 ...

  3. 用于从文件读取/写入字符串的新JDK 11文件方法

    我之前的文章主要关注可能会添加到JDK 11中的Files.isSameContent()方法. JDK-8201276 ["(fs)向文件添加方法以从文件读取字符串或向文件写入字符串&qu ...

  4. jdk8读取文件_用于从文件读取/写入文件的新JDK 11文件方法

    jdk8读取文件 我之前的文章重点讨论了可能添加到JDK 11中的Files.isSameContent()方法. JDK-8201276 ["(fs)向文件添加方法以从文件读取字符串或向文 ...

  5. JDK 11:新的默认收集方法toArray(IntFunction)

    " JDK 11 Early-Access发行说明 "表明JDK 11的Early Access Build 20在Collection接口上包括一个新的默认方法 ,该方法 &qu ...

  6. Java JDK 11:现在可以使用所有新功能

    为什么80%的码农都做不了架构师?>>>    删除了CORBA,Java EE和JavaFX支持,但添加了十几个主要新功能 目录 哪里可以下载JDK 11 Java 11 JDK中 ...

  7. 一篇文章了解新发布的Java JDK 11

    Java JDK 11删除了CORBA,Java EE和JavaFX支持,但添加了十几个主要新功能. Java Development Kit(JDK)11现已普遍可用,可供生产使用,提高了工作效率, ...

  8. java jdk设置字符集_使用JDK 11在Java字符串上的新方法

    java jdk设置字符集 Java的String类似乎将在JDK 11中获得一些新方法,该方法将于2018年9月发布. 错误号 错误标题 新的String方法 描述 JDK-8200425 字符串: ...

  9. 使用JDK 11在Java字符串上的新方法

    Java的String类似乎将在JDK 11中获得一些新方法,该方法将于2018年9月发布. 错误号 错误标题 新的String方法 描述 JDK-8200425 字符串::行 lines() &qu ...

最新文章

  1. css div漂浮向下,DIV+CSS固定底部的漂浮广告
  2. windows窗体(winform)中嵌入显示Excel工作表。
  3. authc过滤器 shiro_使用Shiro实现认证和授权(基于SpringBoot)
  4. DISCUZ X2更换域名注意事项
  5. Android虚拟机和Java虚拟机的区别
  6. python读取文件路径乱码 linux_Python之pandas读写文件乱码的解决方法
  7. Ra2辅助制作(1)
  8. 使用rsync实现客户端与服务器端的文件同步与传送
  9. 极光推送接收不到_极光推送ios接受不到通知
  10. win11安装wsl2
  11. 洛谷P3975 弦论
  12. 金铜仙人辞汉歌-李贺
  13. 一张图片的CSS自适应尺寸圆角方案
  14. oracle 数据库中order by 的一些高级用法
  15. 生活杂感: 理性与感性
  16. 品牌与商家如何做电商直播运营的呢?
  17. 和菜头的独立 Blog 三十万点击量值得祝贺
  18. iPhone微信支持更换桌面图标了,超简单
  19. 陷维权风波,冲高端的小米手机过于激进?
  20. 重庆赛区ACM热身赛 8526. 小埋的烦恼

热门文章

  1. 【模拟】聊天服务器的外部流量
  2. Dubbo(二)之SpringBoot nacos集成
  3. 从开发者角度谈Mysql主键
  4. 第四章使用jQuery操作DOM元素
  5. myeclipse 2016 ci3破解教程(含软件下载)
  6. Ribbon 客户端负载均衡
  7. JS删除之前弹出一个带有确认和取消按钮的提示框confirm()
  8. Ubuntu下C++代码调用可执行文件。
  9. php无限极菜单,无限极菜单的实现
  10. 中国有超级计算机的大学,计算机专业排名看超算实力,ASC竞赛五大高校排名,中山大学第一...