Java String DSA Guide Page 1 of 6
Table of Contents
✅ 1. String Basics in Java
✅ 2. String Comparison
✅ 3. StringBuilder for Efficient Manipulation
✅ 4. Character and ASCII Tricks
✅ 5. String Operations in DSA
🔹 1. Anagram Check
🔹 2. Reverse Words in a Sentence
🔹 3. Palindrome Check
🔹 4. Count Vowels and Consonants
✅ 6. Useful String APIs
✅ 7. Advanced DSA with Strings
🔸 KMP Algorithm (Substring Search)
🔸 Rabin-Karp (Hashing)
🔸 Trie Data Structure
🔸 Rolling Hash for Pattern Matching
🔸 Z-Algorithm
✅ 8. Tips for Competitive Coding
Page 2 of 6
Here's a complete guide on using Strings in Java to solve DSA (Data
Structures & Algorithms) questions efficiently. This covers string
handling, manipulation, and key techniques often used in DSA
problems.
✅ 1. String Basics in Java
java
String s = "hello";
int length = s.length(); // 5
char ch = s.charAt(0); // 'h'
String substr = s.substring(1); // "ello"
boolean match = s.equals("hi"); // false
✅ 2. String Comparison
java
String a = "apple";
String b = "banana";
a.equals(b); // true if content same
a.compareTo(b); // lexicographical comparison
a.equalsIgnoreCase(b); // ignores case
✅ 3. StringBuilder for Efficient Manipulation
Java Strings are immutable. Use StringBuilder for performance.
java
StringBuilder sb = new StringBuilder("hello");
sb.append(" world"); // "hello world"
sb.reverse(); // "dlrow olleh"
sb.delete(0, 6); // deletes chars from index 0 to 5 Page 3 of 6
String s = sb.toString(); // convert to String
Use StringBuilder when modifying strings inside loops to avoid TLE.
✅ 4. Character and ASCII Tricks
java
char c = 'a';
int ascii = (int)c; // 97
char upper = (char)(c - 32); // 'A'
Character.isLetterOrDigit(c);
Character.isUpperCase(c);
Character.toLowerCase(c);
✅ 5. String Operations in DSA
🔹 1. Anagram Check
java
boolean isAnagram(String a, String b) {
if (a.length() != b.length()) return false;
int[] count = new int[26];
for (char c : a.toCharArray()) count[c - 'a']++;
for (char c : b.toCharArray()) count[c - 'a']--;
for (int i : count) if (i != 0) return false;
return true;
}
🔹 2. Reverse Words in a Sentence
java
Page 4 of 6
String reverseWords(String s) {
String[] words = s.trim().split("\\s+");
StringBuilder res = new StringBuilder();
for (int i = words.length - 1; i >= 0; i--) {
res.append(words[i]).append(" ");
}
return res.toString().trim();
}
🔹 3. Palindrome Check
java
boolean isPalindrome(String s) {
int left = 0, right = s.length() - 1;
while (left < right) {
if (s.charAt(left++) != s.charAt(right--)) return false;
}
return true;
}
🔹 4. Count Vowels and Consonants
java
int countVowels(String s) {
int count = 0;
for (char c : s.toLowerCase().toCharArray()) {
if ("aeiou".indexOf(c) != -1) count++;
}
return count;
}
✅ 6. Useful String APIs
Page 5 of 6
Method Use
s.split(" ") Split into words
s.trim() Remove leading/trailing
whitespace
s.toCharArray() Convert string to char array
Arrays.sort(arr) Sort char array
String.valueOf(x) Convert other types to String
s.contains("abc") Check substring
s.replace("a", "b") Replace characters
✅ 7. Advanced DSA with Strings
🔸 KMP Algorithm (Substring Search)
🔸 Rabin-Karp (Hashing)
🔸 Trie Data Structure
🔸 Rolling Hash for Pattern Matching
🔸 Z-Algorithm
Let me know if you want code examples for any advanced
algorithms.
✅ 8. Tips for Competitive Coding
Use StringBuilder in loops.
Avoid += with Strings inside loops. Page 6 of 6
Use char[] for character manipulation.
Know regex basics for split() and replaceAll() .
Would you like to practice with common DSA string questions (like
longest palindrome, group anagrams, etc.)? I can also share a
practice list or help you implement specific problems.