1. How do you check if two strings are anagrams in Java without using built-in sort methods?
Explanation:
Anagrams are words formed by rearranging the letters of another word. To solve without sorting, we use a frequency array to track character counts.
Code:
java
public class AnagramChecker {
public static boolean areAnagrams(String str1, String str2) {
if (str1.length() != str2.length()) return false;
int[] count = new int[256];
for (char c : str1.toCharArray()) count[c]++;
for (char c : str2.toCharArray()) {
count[c]–;
if (count[c] < 0) return false;
}
return true;
}
public static void main(String[] args) {
System.out.println(areAnagrams(“listen”, “silent”)); // true
}
}
2. How do you find the first non-repeating character in a string in Java?
Explanation:
Use a LinkedHashMap to preserve insertion order while counting frequency.
Code:
java
import java.util.*;
public class FirstUniqueChar {
public static char findFirstUnique(String str) {
Map<Character, Integer> map = new LinkedHashMap<>();
for (char c : str.toCharArray())
map.put(c, map.getOrDefault(c, 0) + 1);
for (Map.Entry<Character, Integer> entry : map.entrySet())
if (entry.getValue() == 1) return entry.getKey();
return ‘\0’;
}
public static void main(String[] args) {
System.out.println(findFirstUnique(“swiss”)); // Output: w
}
}
3. How do you reverse each word in a string while keeping the word order the same?
Explanation:
Split the sentence, reverse each word, then join.
Code:
java
public class ReverseEachWord {
public static String reverseWords(String sentence) {
String[] words = sentence.split(” “);
StringBuilder result = new StringBuilder();
for (String word : words) {
result.append(new StringBuilder(word).reverse()).append(” “);
}
return result.toString().trim();
}
public static void main(String[] args) {
System.out.println(reverseWords(“Java is fun”)); // Output: avaJ si nuf
}
}
4. How do you find duplicate characters in a string in Java?
Explanation:
Use a Set to find characters that appear more than once.
Code:
java
import java.util.*;
public class DuplicateChars {
public static Set<Character> findDuplicates(String str) {
Set<Character> seen = new HashSet<>();
Set<Character> duplicates = new HashSet<>();
for (char c : str.toCharArray()) {
if (!seen.add(c)) duplicates.add(c);
}
return duplicates;
}
public static void main(String[] args) {
System.out.println(findDuplicates(“programming”)); // Output: [r, g, m]
}
}
5. How to count character frequency in a string using Java?
Explanation:
Use a HashMap to store character and its count.
Code:
java
import java.util.*;
public class CharFrequency {
public static Map<Character, Integer> countFrequency(String str) {
Map<Character, Integer> freqMap = new HashMap<>();
for (char c : str.toCharArray())
freqMap.put(c, freqMap.getOrDefault(c, 0) + 1);
return freqMap;
}
public static void main(String[] args) {
System.out.println(countFrequency(“banana”)); // Output: {b=1, a=3, n=2}
}
}
6. How do you remove duplicate characters from a string in Java?
Explanation:
Use a LinkedHashSet to preserve order and remove duplicates.
Code:
java
import java.util.*;
public class RemoveDuplicates {
public static String removeDuplicates(String str) {
Set<Character> set = new LinkedHashSet<>();
for (char c : str.toCharArray()) set.add(c);
StringBuilder result = new StringBuilder();
for (char c : set) result.append(c);
return result.toString();
}
public static void main(String[] args) {
System.out.println(removeDuplicates(“programming”)); // Output: progamin
}
}
7. How do you check if a string is a palindrome in Java?
Explanation:
A string is a palindrome if it reads the same backward. Use two-pointer technique.
Code:
java
public class PalindromeChecker {
public static boolean isPalindrome(String str) {
int left = 0, right = str.length() – 1;
while (left < right) {
if (str.charAt(left++) != str.charAt(right–)) return false;
}
return true;
}
public static void main(String[] args) {
System.out.println(isPalindrome(“madam”)); // true
}
}
8. How to check if one string is a rotation of another in Java?
Explanation:
A string s2 is a rotation of s1 if it’s a substring of s1 + s1.
Code:
java
public class StringRotation {
public static boolean isRotation(String s1, String s2) {
return s1.length() == s2.length() && (s1 + s1).contains(s2);
}
public static void main(String[] args) {
System.out.println(isRotation(“waterbottle”, “erbottlewat”)); // true
}
}
9. How do you count vowels and consonants in a string?
Explanation:
Use a loop to count vowels and consonants.
Code:
java
public class VowelConsonantCounter {
public static void countVowelsAndConsonants(String str) {
int vowels = 0, consonants = 0;
str = str.toLowerCase();
for (char c : str.toCharArray()) {
if (Character.isLetter(c)) {
if (“aeiou”.indexOf(c) >= 0) vowels++;
else consonants++;
}
}
System.out.println(“Vowels: ” + vowels);
System.out.println(“Consonants: ” + consonants);
}
public static void main(String[] args) {
countVowelsAndConsonants(“Hello World”);
}
}
10. How do you find all permutations of a string in Java?
Explanation:
Use recursion and backtracking to generate permutations.
Code:
java
public class StringPermutations {
public static void permute(String str, String result) {
if (str.length() == 0) {
System.out.println(result);
return;
}
for (int i = 0; i < str.length(); i++) {
permute(str.substring(0, i) + str.substring(i + 1), result + str.charAt(i));
}
}
public static void main(String[] args) {
permute(“ABC”, “”);
}
}
👉The Next 10 Questions-III: JAVA STRING