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

本文介绍了JDK 11中Java字符串的六个新方法,包括`String.repeat(int)`、`String.lines()`、`String.strip()`、`String.stripLeading()`、`String.stripTrailing()`和`String.isBlank()`。通过示例展示了这些方法的用法,简化了字符串处理任务,减少了对外部库的依赖。
摘要由CSDN通过智能技术生成

switch字符串jdk

在“ 使用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

switch字符串jdk

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值