应用新的JDK 11字符串方法
在“ 使用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字符串方法相关推荐
- switch字符串jdk_应用新的JDK 11字符串方法
switch字符串jdk 在" 使用JDK 11的Java字符串上的新方法 "和" String#repeat即将加入Java? ",我讨论了JDK 11引入J ...
- 新的JDK 11文件方法isSameContent()
已经建议通过JDK-8202285将名为isSameContents()方法添加到JDK 11中的Files类中[[(fs)向文件中添加用于比较文件内容的方法"]. 由Joe Wang提议 ...
- 用于从文件读取/写入字符串的新JDK 11文件方法
我之前的文章主要关注可能会添加到JDK 11中的Files.isSameContent()方法. JDK-8201276 ["(fs)向文件添加方法以从文件读取字符串或向文件写入字符串&qu ...
- jdk8读取文件_用于从文件读取/写入文件的新JDK 11文件方法
jdk8读取文件 我之前的文章重点讨论了可能添加到JDK 11中的Files.isSameContent()方法. JDK-8201276 ["(fs)向文件添加方法以从文件读取字符串或向文 ...
- JDK 11:新的默认收集方法toArray(IntFunction)
" JDK 11 Early-Access发行说明 "表明JDK 11的Early Access Build 20在Collection接口上包括一个新的默认方法 ,该方法 &qu ...
- Java JDK 11:现在可以使用所有新功能
为什么80%的码农都做不了架构师?>>> 删除了CORBA,Java EE和JavaFX支持,但添加了十几个主要新功能 目录 哪里可以下载JDK 11 Java 11 JDK中 ...
- 一篇文章了解新发布的Java JDK 11
Java JDK 11删除了CORBA,Java EE和JavaFX支持,但添加了十几个主要新功能. Java Development Kit(JDK)11现已普遍可用,可供生产使用,提高了工作效率, ...
- java jdk设置字符集_使用JDK 11在Java字符串上的新方法
java jdk设置字符集 Java的String类似乎将在JDK 11中获得一些新方法,该方法将于2018年9月发布. 错误号 错误标题 新的String方法 描述 JDK-8200425 字符串: ...
- 使用JDK 11在Java字符串上的新方法
Java的String类似乎将在JDK 11中获得一些新方法,该方法将于2018年9月发布. 错误号 错误标题 新的String方法 描述 JDK-8200425 字符串::行 lines() &qu ...
最新文章
- css div漂浮向下,DIV+CSS固定底部的漂浮广告
- windows窗体(winform)中嵌入显示Excel工作表。
- authc过滤器 shiro_使用Shiro实现认证和授权(基于SpringBoot)
- DISCUZ X2更换域名注意事项
- Android虚拟机和Java虚拟机的区别
- python读取文件路径乱码 linux_Python之pandas读写文件乱码的解决方法
- Ra2辅助制作(1)
- 使用rsync实现客户端与服务器端的文件同步与传送
- 极光推送接收不到_极光推送ios接受不到通知
- win11安装wsl2
- 洛谷P3975 弦论
- 金铜仙人辞汉歌-李贺
- 一张图片的CSS自适应尺寸圆角方案
- oracle 数据库中order by 的一些高级用法
- 生活杂感: 理性与感性
- 品牌与商家如何做电商直播运营的呢?
- 和菜头的独立 Blog 三十万点击量值得祝贺
- iPhone微信支持更换桌面图标了,超简单
- 陷维权风波,冲高端的小米手机过于激进?
- 重庆赛区ACM热身赛 8526. 小埋的烦恼