🌐
Oracle
docs.oracle.com › en › java › javase › 17 › docs › api › java.base › java › lang › String.html
String (Java SE 17 & JDK 17)
January 20, 2026 - The class String includes methods for examining individual characters of the sequence, for comparing strings, for searching strings, for extracting substrings, and for creating a copy of a string with all characters translated to uppercase or to lowercase. Case mapping is based on the Unicode Standard version specified by the Character class. The Java language provides special support for the string concatenation operator ( + ), and for conversion of other objects to strings.
🌐
DEV Community
dev.to › msmittalas › new-way-to-use-strings-in-java-17-2i1l
New way to Use Strings in Java 17 - DEV Community
June 10, 2022 - Before Java 15, Writing SQL, HTML, JSON or any Polyglot scripts in String were difficult. It was ugly and difficult to read. For example : Following HTML in Java : ... With "JEP 378: Text Blocks" introduced in Java 15 ( Java 17 LTS), We can use two dimensional block of text.
🌐
Oracle
docs.oracle.com › en › java › javase › 17 › docs › api › jdk.jdi › com › sun › jdi › StringReference.html
StringReference (Java SE 17 & JDK 17)
January 20, 2026 - A StringReference is an ObjectReference with additional access to string-specific information from the target VM.
🌐
Javaspecialists
javaspecialists.eu › archive › Issue294-String.format-3x-faster-in-Java-17.html
[JavaSpecialists 294] - String.format() 3x faster in Java 17
One of the most convenient ways of constructing complex Strings is with String.format(). It used to be excessively slow, but in Java 17 is about 3x faster. In this newsletter we discover what the difference is and where it will help you. Also when you should use format() instead of the plain ...
🌐
Reddit
reddit.com › r/java › string.format() is 3x faster in java 17
r/java on Reddit: String.format() is 3x faster in Java 17
October 30, 2021 - Yes, String::formatted is just a non-static variant of String::format. So this optimization applies equally to both. ... That's pretty cool. Highest version Java I've ever seen in the wild in Fortune 500 software is 11. Next project for me is in 8. Hope we get to 17 someday.
🌐
Ideas2IT
ideas2it.com › blogs › java-17-heres-a-juicy-update-on-everything-thats-new
Java 17 New Features: Here's a Juicy Update in JDK17
This JEP facilitates the porting of the JDK to run on AArch64 architecture for macOS platforms, ensuring that Java applications remain compatible and performant as Apple shifts its hardware to the new architecture. ... Pattern matching allows the conditional extraction of components from objects to be expressed more concisely and safely. Let's consider the below example, here we are first testing whether obj is a string, then the declaration of string variables, and then type casting obj to a string into variables.
🌐
GitHub
github.com › openjdk › jdk › blob › master › src › java.base › share › classes › java › lang › String.java
jdk/src/java.base/share/classes/java/lang/String.java at master · openjdk/jdk
: StringUTF16.indexOf(value, ch, Math.min(fromIndex, value.length >> 1), value.length >> 1); ... * java.util.regex.Pattern#splitWithDelimiters(CharSequence,int) splitWithDelimiters}(<i>str</i>,&nbsp;<i>n</i>)
Author   openjdk
🌐
javaspring
javaspring.net › blog › java-17-string
Java 17 Strings: A Comprehensive Guide — javaspring.net
Java 17, an LTS (Long-Term Support) release, comes with various features and improvements related to strings that can enhance developers' productivity and code readability. This blog post aims to provide a detailed overview of Java 17 strings, ...
Find elsewhere
🌐
javaspring
javaspring.net › blog › java-17-string-interpolation
Java 17 String Interpolation: A Comprehensive Guide — javaspring.net
As shown in the previous example, you can insert variables into a string by enclosing them in curly braces within a template string. Java 17 does not provide native string interpolation, but you can achieve similar functionality using Text Blocks ...
🌐
Java Concept Of The Day
javaconceptoftheday.com › home › java new string methods – from java 8 to java 17
Java New String Methods - From Java 8 To Java 17
February 26, 2022 - From time to time, new methods are added to String class so that working with strings becomes effortless and simple. join() in Java 8, chars() and codePoints() in Java 9, isBlank(), lines(), repeat(), strip(), stripLeading() and stripTrailing() in Java 11, indent(), transform(), describeConstable() and resolveConstantDesc() in Java 12, formatted(), stripIndent() and translateEscapes() in Java 15 are some new Java string methods. In this post, we will see all the new methods added to String class from Java 8 to Java 17.
Top answer
1 of 2
2

The error message is produced by an outdated version of CheckStyle.

According to the CheckStyle ticket Support for Java 15 Strings you need at least CheckStyle version 8.36 if you want to use text blocks / multiline strings together with CheckStyle checks.

The error message (org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check) indicates that your project uses the Maven-CheckStyle-Plugin version 2.17 which according to Maven Checkstyle Plugin Releases History by default uses CheckStyle version 6.11.2

You can try to configure your project to use the Maven CheckStyle Plugin 2.17 together with the CheckStyle version 8.36 using the following configuration (source: Upgrading Checkstyle at Runtime):

<project>
  ...
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>2.17</version>
          <dependencies>
            <dependency>
              <groupId>com.puppycrawl.tools</groupId>
              <artifactId>checkstyle</artifactId>
              <version>8.36</version>
            </dependency>
          </dependencies>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  ...
</project>
2 of 2
0

Upgrading the maven-checkstyle-plugin and checkstyle resolved the issue:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-checkstyle-plugin</artifactId>
  <version>3.3.0</version>
  <dependencies>
    <dependency>
      <groupId>com.puppycrawl.tools</groupId>
      <artifactId>checkstyle</artifactId>
      <version>10.12.1</version>
    </dependency>
  </dependencies>
</plugin>
🌐
Medium
marian-caikovski.medium.com › strings-how-java-17-is-worse-and-better-than-java-8-59f4088504a3
Strings — how Java 17 is worse and better than Java 8 | by Marian C. | Medium
December 6, 2021 - At the time the authors of the enhancement were not sure if in real applications the overhead of creating and using the novel compact strings can be compensated by their benefits. Sources in the internet suggest that the Java team is still working to deliver even better balance between memory saving and run-time performance. Let’s see how Java 8 and Java 17 differ at string handling.
🌐
Guava
guava.dev › releases › 17.0 › api › docs › com › google › common › base › Strings.html
Strings (Guava: Google Core Libraries for Java 17.0 API)
java.lang.Object · com.google.common.base.Strings · @GwtCompatible public final class Strings extends Object · Static utility methods pertaining to String or CharSequence instances. Since: 3.0 · Author: Kevin Bourrillion · clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait ·
🌐
TechWell
techwell.com › techwell-insights › 2022 › 05 › new-language-features-java-17
New Language Features in Java 17 | TechWell
May 5, 2022 - As Java 17 is the latest Long Term Support (LTS) version after Java 11, it is opportune to go over the new language features it adds, some of which had been Preview features in intermediate versions. ... String literals had shortcomings, and text blocks enhanced string literals with some new characteristics:
🌐
Oracle
docs.oracle.com › en › java › javase › 17 › docs › api › java.base › java › lang › StringBuilder.html
StringBuilder (Java SE 17 & JDK 17)
January 20, 2026 - The principal operations on a StringBuilder are the append and insert methods, which are overloaded so as to accept data of any type. Each effectively converts a given datum to a string and then appends or inserts the characters of that string to the string builder.
🌐
Oracle
docs.oracle.com › en › java › javase › 11 › docs › api › java.base › java › lang › String.html
String (Java SE 11 & JDK 11 )
January 20, 2026 - The class String includes methods for examining individual characters of the sequence, for comparing strings, for searching strings, for extracting substrings, and for creating a copy of a string with all characters translated to uppercase or to lowercase. Case mapping is based on the Unicode Standard version specified by the Character class. The Java language provides special support for the string concatenation operator ( + ), and for conversion of other objects to strings.
🌐
Aegissofttech
aegissofttech.com › insights › java › text blocks in java 17: multi-line string handling tutorial
Text Blocks in Java 17: Multi-Line String Handling Tutorial
October 2, 2025 - READ – Understanding Java 17 Records: Benefits, Features, and Limitations · Multi-line string literals, or text blocks, were introduced in Java 17 to make handling and reading long-formatted texts easier.
🌐
Oracle
docs.oracle.com › en › java › javase › 17 › docs › api › java.base › java › io › StringWriter.html
StringWriter (Java SE 17 & JDK 17)
January 20, 2026 - java.io.StringWriter · All Implemented Interfaces: Closeable, Flushable, Appendable, AutoCloseable · public class StringWriter extends Writer · A character stream that collects its output in a string buffer, which can then be used to construct a string. Closing a StringWriter has no effect.