Java Strings

Java
String name = "Sita Karki";

System.out.println(name.length());          // 10
System.out.println(name.toUpperCase());     // SITA KARKI
System.out.println(name.toLowerCase());
System.out.println(name.charAt(0));         // S
System.out.println(name.indexOf("Karki"));  // 5, or -1 if absent
System.out.println(name.substring(0, 4));   // Sita
System.out.println(name.replace("Sita", "Gita"));
System.out.println(name.trim());            // remove leading/trailing spaces
System.out.println(name.contains("Karki")); // true
System.out.println(name.isEmpty());         // false
System.out.println(name.isBlank());         // false (Java 11+)

Comparing

Java
String a = "hello";
String b = "HELLO";

a.equals(b);            // false
a.equalsIgnoreCase(b);  // true
a.compareTo(b);         // >0, 0, or <0 — for sorting

Splitting and joining

Java
String csv = "ram,shyam,hari";
String[] parts = csv.split(",");

String joined = String.join(" | ", parts);  // "ram | shyam | hari"

Strings are immutable

Every "modification" creates a new String; the original never changes.

Java
String s = "hello";
s.toUpperCase();              // result thrown away!
System.out.println(s);        // still "hello"

s = s.toUpperCase();          // correct — reassign
System.out.println(s);        // "HELLO"

StringBuilder for loops

Because of immutability, building a string with += inside a loop creates a new object every iteration — quadratic time. Use StringBuilder:

Java
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++) {
    sb.append(i).append(",");
}
String result = sb.toString();

Formatting

Java
String s = String.format("Name: %s, Total: NPR %.2f", "Sita", 1250.5);
System.out.println(s);

Text blocks (Java 15+)

Multi-line strings without escaping:

Java
String json = """
    {
        "name": "Sita",
        "city": "Kathmandu"
    }
    """;