DevAcademia
C++C#CPythonJava
  • Java Basics

  • Java Introduction
  • Java Get Started
  • Java Syntax
  • Java Output
  • Java Comments
  • Java Variables
  • Java Data Types
  • Java Type Casting
  • Java Operators
  • Java Strings
  • Java If...Else
  • Java Switch Statement
  • Java Loops
  • Java Math
  • Java Arrays
  • Java Date
  • Java OOP

  • Java Classes/Objects
  • Java Class Attributes
  • Java Class Methods
  • Java Constructors
  • Java Destructors
  • Java this Keyword
  • Java Modifiers
  • Java Non Modifiers
  • Java Encapsulation
  • Java Packages & API
  • Java Inheritance
  • Java Polymorphism
  • Java Super Keyword
  • Java Inner Classes
  • Java Exception Handling
  • Java Abstraction
  • Java Interfaces
  • Java Enums
  • Java User Input
  • Java Quiz

  • Java Fundamentals Quiz
  • Java Basics

  • Java Introduction
  • Java Get Started
  • Java Syntax
  • Java Output
  • Java Comments
  • Java Variables
  • Java Data Types
  • Java Type Casting
  • Java Operators
  • Java Strings
  • Java If...Else
  • Java Switch Statement
  • Java Loops
  • Java Math
  • Java Arrays
  • Java Date
  • Java OOP

  • Java Classes/Objects
  • Java Class Attributes
  • Java Class Methods
  • Java Constructors
  • Java Destructors
  • Java this Keyword
  • Java Modifiers
  • Java Non Modifiers
  • Java Encapsulation
  • Java Packages & API
  • Java Inheritance
  • Java Polymorphism
  • Java Super Keyword
  • Java Inner Classes
  • Java Exception Handling
  • Java Abstraction
  • Java Interfaces
  • Java Enums
  • Java User Input
  • Java Quiz

  • Java Fundamentals Quiz

Loading Java tutorial…

Loading content
Java BasicsTopic 24 of 59
←PreviousPrevNextNext→

Java Special Characters - Complete Guide

Introduction to Special Characters

Special characters in Java strings are symbols that have reserved meaning or cannot be typed directly in string literals. Escape sequences are used to represent them.

Mastering special characters is important for tasks such as text formatting, file path handling, regex patterns, and processing multilingual text.

Escape Sequences

Escape sequences start with a backslash (`\`) and represent characters that otherwise cannot be expressed directly inside a string.

Example
public class EscapeSequences {
    public static void main(String[] args) {
        // Common escape sequences
        System.out.println("Newline: Hello\nWorld");
        System.out.println("Tab: Hello\tWorld");
        System.out.println("Backslash: Hello\\World");
        System.out.println("Single quote: It\'s Java");
        System.out.println("Double quote: \"Hello Java\"");
        System.out.println("Backspace: Hello\bWorld");
        System.out.println("Carriage return: Hello\rWorld");
        System.out.println("Form feed: Hello\fWorld");

        // Unicode escape sequences
        System.out.println("Unicode: \u0048\u0065\u006C\u006C\u006F"); // Hello
        System.out.println("Euro symbol: \u20AC"); // €
        System.out.println("Copyright: \u00A9"); // ©

        // File paths
        String windowsPath = "C:\\Program Files\\Java";
        String unixPath = "/usr/local/java";
        System.out.println("Windows path: " + windowsPath);
        System.out.println("Unix path: " + unixPath);

        // Regular expressions
        String regex = "\\d+"; // Matches digits
        System.out.println("Regex: " + regex);

        // Multi-line string simulation (before Java 15)
        String multiLine = "Line 1\n" +
                           "Line 2\n" +
                           "Line 3";
        System.out.println("Multi-line string:\n" + multiLine);
    }
}
Output
Newline: Hello
World
Tab: Hello	World
Backslash: Hello\World
Single quote: It's Java
Double quote: "Hello Java"
Backspace: HellWorld
Carriage return: World
Form feed: Hello♀World
Unicode: Hello
Euro symbol: €
Copyright: ©
Windows path: C:\Program Files\Java
Unix path: /usr/local/java
Regex: \d+
Multi-line string:
Line 1
Line 2
Line 3

Text Blocks (Java 15+)

Java 15 introduced text blocks using triple quotes (`"""`). They allow easier handling of multi-line strings and reduce the need for escape sequences.

Example
public class TextBlocks {
    public static void main(String[] args) {
        String textBlock = """
            This is a text block
            spanning multiple lines.

            Quotes "like this" and backslashes \\ are easy to use.
            """;

        System.out.println("Text block:");
        System.out.println(textBlock);

        // JSON example
        String json = """
            {
                "name": "John Doe",
                "age": 30,
                "city": "New York"
            }
            """;
        System.out.println("JSON example:");
        System.out.println(json);

        // HTML example
        String html = """
            <html>
                <body>
                    <h1>Hello World</h1>
                    <p>This is a paragraph</p>
                </body>
            </html>
            """;
        System.out.println("HTML example:");
        System.out.println(html);
    }
}
Output
Text block:
This is a text block
spanning multiple lines.

Quotes "like this" and backslashes \\ are easy to use.

JSON example:
{
    "name": "John Doe",
    "age": 30,
    "city": "New York"
}

HTML example:
<html>
    <body>
        <h1>Hello World</h1>
        <p>This is a paragraph</p>
    </body>
</html>

Working with Unicode Characters

Java fully supports Unicode, allowing representation of international scripts, emojis, and symbols.

You can access characters, code points, and even generate strings directly from Unicode values.

Example
public class UnicodeCharacters {
    public static void main(String[] args) {
        String japanese = "こんにちは"; // Hello in Japanese
        String emoji = "Hello 😊 World";

        System.out.println("Japanese: " + japanese);
        System.out.println("Emoji: " + emoji);

        String text = "A😊";
        System.out.println("Code points:");
        for (int i = 0; i < text.length(); i++) {
            System.out.println("Char " + i + ": '" + text.charAt(i) + "' Code: " + (int) text.charAt(i));
        }

        String complex = "A😊文";
        System.out.println("String: " + complex);
        System.out.println("Length (chars): " + complex.length());
        System.out.println("Code point count: " + complex.codePointCount(0, complex.length()));

        int[] smileyCodePoints = {0x1F60A};
        String smiley = new String(smileyCodePoints, 0, smileyCodePoints.length);
        System.out.println("Smiley from code point: " + smiley);

        char ch = 'A';
        System.out.println("Is '" + ch + "' a letter? " + Character.isLetter(ch));
        System.out.println("Is '" + ch + "' a digit? " + Character.isDigit(ch));
        System.out.println("Is '" + ch + "' uppercase? " + Character.isUpperCase(ch));
    }
}
Output
Japanese: こんにちは
Emoji: Hello 😊 World
Code points:
Char 0: 'A' Code: 65
Char 1: '😊' Code: 128522
String: A😊文
Length (chars): 3
Code point count: 3
Smiley from code point: 😊
Is 'A' a letter? true
Is 'A' a digit? false
Is 'A' uppercase? true

Best Practices for Special Characters

  • ✅ Use escape sequences for representing special characters in strings.
  • ✅ Prefer text blocks for multi-line strings when using Java 15 or later.
  • ✅ Always use UTF-8 encoding for consistent international support.
  • ✅ Use `codePoint` methods for handling characters outside the Basic Multilingual Plane (BMP).
  • ✅ Escape user input when displaying or storing to prevent injection vulnerabilities.
  • ✅ Properly escape backslashes in file paths and regex expressions.
  • ✅ Test with a variety of international characters to ensure compatibility.
Test your knowledge: Java Special Characters - Complete Guide
Quiz Configuration
4 of 10 questions
Sequential
Previous allowed
Review enabled
Early close allowed
Estimated time: 5 min
Java BasicsTopic 24 of 59
←PreviousPrevNextNext→