JDK 11 String 新方法使用教程

位置:首页>文章>详情   分类: 教程分享 > Java教程   阅读(936)   2023-03-28 11:29:14
可用的早期访问JDK 11版本已经包含这些新方法,我使用其中一个早期访问版本来演示这篇文章。
我正在使用OpenJDK JDK 11 Early Access Build 20来编译和运行本文中显示的示例。
查看jdk版本为jdk11
jdk11版本查看
String通过OpenJDK JDK 11 Early Access Build 20在本文中演示的为JDK 11 添加的六种方法是:
  • String.repeat(int)
  • String.lines()
  • String.strip()
  • String.stripLeading()
  • String.stripTrailing()
  • String.isBlank()
本文中演示的示例的源代码可在GitHub上获得
String.repeat(INT)
String.repeat(int)由于在Groovy中体验了这一功能,因此该方法提供了我希望在Java中看到的便捷功能。顾名思义,这种方法重复String它的运行次数与int参数提供的次数相同。在生成简单的演示并将其用于本文的示例时,我将来可能经常使用此方法。下一个代码清单演示了如何使用它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在其它被称为由它的行结束,并返回一个StreamStrings那些行结束所划分。
用于 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 lines
String lines

String.strip()/ String.stripLeading()/ String.stripTrailing()
String.strip()String.stripLeading()String.stripTrailing()方法修剪空白[由以下方法测定Character.isWhiteSpace() ]关闭任一前,后,或前部和后部的目标String
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());
}
执行此代码的示例显示在下一个屏幕快照中。
Stringblank

其代码如上所示的一些方法称为“辅助”方法,可以在GitHub上看到。
添加到JDK 11的方法String是一些小的补充,但是会使与Java相关的某些“表示”任务String比过去更容易,并减少对第三方库的需求。
 
标签: java String JDK11
地址:https://www.leftso.com/article/464.html

相关阅读

JDK 11 String 新方法使用教程
JDK11 Java String 新增方法,Java的String类可能会获得一些JDK 11的新方法,预计将于2018年9月发布。
JDK11 90+ 新特性新功能(第一部分)开发人员可见功能
JDK11 90+ 新特性新功能(第二部分:非开发人员功能)
在第11次发布之后,人们对JavaFX与JDK脱钩产生了各种各样的感受。我们中的许多人认为现在是时候告别JavaFX并转而采用另一种GUI技术,而其他一些人则对这种情况感到高兴。
Java 11(2018 年 9 月发布)包含许多重要且有用的更新
Java 9 紧凑String改进[JEP 254],Java9新特性
Java语言中,String类型能被继承吗?为什么?
yum安装jdk1.8-CentOS6.5,centos6,jdk8
JAVA10 升级后的几个我们值得关注的新特性。尤其是第一个,赶紧看看JDK10的新特性吧。