Strings
Compare, search, split and build strings efficiently.
String is the class Java uses for text. Strings are immutable: methods like toUpperCase() never change the original string, they return a new one.
public class Main {
public static void main(String[] args) {
String s = " Hello, Java ";
String t = s.trim();
System.out.println("[" + t + "]");
System.out.println(t.length());
System.out.println(t.charAt(0));
System.out.println(t.indexOf("Java"));
System.out.println(t.replace("Java", "World"));
System.out.println(t.startsWith("Hell"));
System.out.println("[" + s + "]"); // unchanged
}
}
Output
[Hello, Java] 11 H 7 Hello, World true [ Hello, Java ]
Comparing strings
Use equals to compare text. == only checks whether two variables refer to the very same object, which is not what you usually want.
public class Main {
public static void main(String[] args) {
String a = "java";
String b = new String("java");
System.out.println(a == b);
System.out.println(a.equals(b));
System.out.println("JAVA".equalsIgnoreCase(a));
System.out.println("apple".compareTo("banana") < 0);
}
}
Output
false true true true
Splitting and joining
public class Main {
public static void main(String[] args) {
String line = "Asha,21,Pune";
String[] parts = line.split(",");
System.out.println(parts[0] + " lives in " + parts[2]);
String joined = String.join(" | ", parts);
System.out.println(joined);
}
}
Output
Asha lives in Pune Asha | 21 | Pune
StringBuilder
Joining strings with + inside a loop creates a new string every time. StringBuilder builds text efficiently in place.
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 5; i++) {
sb.append(i);
if (i < 5) sb.append(", ");
}
System.out.println(sb.toString());
System.out.println(sb.reverse());
}
}
Output
1, 2, 3, 4, 5 5 ,4 ,3 ,2 ,1
Formatting
String.format builds a string with the same placeholders as printf.
public class Main {
public static void main(String[] args) {
String msg = String.format("%s scored %.1f%% in %d subjects", "Meera", 91.25, 6);
System.out.println(msg);
}
}
Output
Meera scored 91.3% in 6 subjects