19

I've read that multiline string literals were proposed to be added in Java 7.

Although I can't find any documentation saying definitely that they have been. I'd like to know if they are, because this is something I'd consider switching versions for.

5
  • So @Mike, what's the question again? Commented Jan 3, 2011 at 0:42
  • 1
    There's a proposal from 2008, but nothing in the feature list. There's a library implementation. Commented Jan 3, 2011 at 0:43
  • Why do you need multi line strings, if you really need them load text files etc. Commented Jan 3, 2011 at 0:43
  • 5
    @mp I'm hoping to avoid discussing why. let's just assume I have a good reason for it. Commented Jan 3, 2011 at 0:44
  • 1
    possible duplicate of Java multiline string Commented Mar 28, 2014 at 20:23

4 Answers 4

17

Multiline string literals are not going to be added to JDK 7. You can check Project Coin's homepage for a list of language changes.

However, you can use Scala, which does support multiline string literals using triple quotes:

var s = """Hello
      World"""
Sign up to request clarification or add additional context in comments.

5 Comments

Because it also targets the JVM.
@Mike I would consider Scala "the evolution" of Java in terms of language design that is not held back by the previous versions of Java although it is still shackled with the general design of the JVM/CLR "OOP" paradigms. (E.g. Scala is to Java as C#5.0+ will be to C#1.0 :-)
The problem with scala in this context is losing the simplicity of all source and files within one place, which is the win of heredocs.
This is of course of topic of the original question but I would suggest that Groovy is now the evolution of Java and it supports multiline strings using either three double-quotes or single-quotes.
Well since we branch out in this question I'd say Kotlin does a good job at this.
5

Multiline strings were not added into Java (even as of Java 8, the newest current version), and probably will never be added to Java. However, you can add multiple strings together like so:

String greeting = "Hello " + 
    "world! " + 
    "This is a multiline string.";

Or, if you want the multiline line breaks to actually start a new line, insert "\n" to the end of each line.

2 Comments

You do understand that multiline refers to the source code, not the rendered version?
@ThomasJungblut Sorry. I must've misunderstood. I will edit my answer.
2

Multiline strings are supported in Java since JDK 13. They are called text blocks:

String html = """
          <html>
              <body>
                  <p>Hello, world</p>
              </body>
          </html>
          """;

Note, this is a preview feature. But I hope it will become a permanent feature in one of the next releases (JDK 14-15).

1 Comment

It is official with Java 15!
1

Following Java's coding conventions Strings should be concatenated like:

String str = "Long text line " 
             + "more long text.";

Make sure the + operator always begins the next line for readability.
See: Code Conventions for the Java Programming Language: 4. Indentation

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.