Java String - 50 Unique Practice Problems (Easy /
Medium / Hard)
Easy 1: Reverse String
Problem: Easy 1: Reverse String
String s="Java";
String rev="";
for(int i=[Link]()-1;i>=0;i--) rev+=[Link](i);
[Link](rev);
Output: avaJ
Explanation: Reverse using loop.
Easy 2: Palindrome Check
Problem: Easy 2: Palindrome Check
String s="madam";
String rev="";
for(int i=[Link]()-1;i>=0;i--) rev+=[Link](i);
[Link]([Link](rev));
Output: true
Explanation: Compare original and reversed.
Easy 3: Count Vowels
Problem: Easy 3: Count Vowels
String s="education";
int c=0;
for(char ch:[Link]())
if("aeiou".indexOf(ch)!=-1) c++;
[Link](c);
Output: 5
Explanation: Check vowels.
Easy 4: Count Consonants
Problem: Easy 4: Count Consonants
String s="hello";
int c=0;
for(char ch:[Link]())
if([Link](ch)&&"aeiou".indexOf(ch)==-1) c++;
[Link](c);
Output: 3
Explanation: Non-vowels.
Easy 5: Remove Spaces
Problem: Easy 5: Remove Spaces
[Link]("Hello World".replace(" ",""));
Output: HelloWorld
Explanation: Replace spaces.
Easy 6: Uppercase
Problem: Easy 6: Uppercase
[Link]("java".toUpperCase());
Output: JAVA
Explanation: Uppercase conversion.
Easy 7: Lowercase
Problem: Easy 7: Lowercase
[Link]("JAVA".toLowerCase());
Output: java
Explanation: Lowercase.
Easy 8: First Character
Problem: Easy 8: First Character
[Link]("Java".charAt(0));
Output: J
Explanation: charAt.
Easy 9: Last Character
Problem: Easy 9: Last Character
String s="Java";
[Link]([Link]([Link]()-1));
Output: a
Explanation: Last index.
Easy 10: Length
Problem: Easy 10: Length
[Link]("Java".length());
Output: 4
Explanation: Length.
Easy 11: Contains
Problem: Easy 11: Contains
[Link]("Java".contains("av"));
Output: true
Explanation: Check substring.
Easy 12: StartsWith
Problem: Easy 12: StartsWith
[Link]("Java".startsWith("Ja"));
Output: true
Explanation: Prefix.
Easy 13: EndsWith
Problem: Easy 13: EndsWith
[Link]("Java".endsWith("va"));
Output: true
Explanation: Suffix.
Easy 14: Trim
Problem: Easy 14: Trim
[Link](" Java ".trim());
Output: Java
Explanation: Trim.
Easy 15: Replace char
Problem: Easy 15: Replace char
[Link]("Java".replace('a','o'));
Output: Jovo
Explanation: Replace.
Easy 16: Split words
Problem: Easy 16: Split words
for(String w:"Java is easy".split(" "))
[Link](w);
Output: Java is easy
Explanation: Split.
Easy 17: IndexOf
Problem: Easy 17: IndexOf
[Link]("Java".indexOf('a'));
Output: 1
Explanation: Index.
Easy 18: LastIndexOf
Problem: Easy 18: LastIndexOf
[Link]("Java".lastIndexOf('a'));
Output: 3
Explanation: Last index.
Easy 19: Equals
Problem: Easy 19: Equals
[Link]("Java".equals("Java"));
Output: true
Explanation: Content compare.
Easy 20: EqualsIgnoreCase
Problem: Easy 20: EqualsIgnoreCase
[Link]("java".equalsIgnoreCase("JAVA"));
Output: true
Explanation: Ignore case.
Medium 21: Remove duplicates
Problem: Medium 21: Remove duplicates
String s="programming",r="";
for(char c:[Link]())
if([Link](c)==-1) r+=c;
[Link](r);
Output: progamin
Explanation: Unique chars.
Medium 22: Frequency count
Problem: Medium 22: Frequency count
String s="aab";
int count=0;
for(char c:[Link]())
if(c=='a') count++;
[Link](count);
Output: 2
Explanation: Count char.
Medium 23: Anagram check
Problem: Medium 23: Anagram check
String a="listen",b="silent";
char[] x=[Link](),y=[Link]();
[Link](x);
[Link](y);
[Link]([Link](x,y));
Output: true
Explanation: Sort compare.
Medium 24: Reverse words
Problem: Medium 24: Reverse words
String s="Java is easy";
String[] arr=[Link](" ");
for(int i=[Link]-1;i>=0;i--)
[Link](arr[i]+" ");
Output: easy is Java
Explanation: Reverse words.
Medium 25: Count words
Problem: Medium 25: Count words
[Link]("Java is easy".split(" ").length);
Output: 3
Explanation: Word count.
Medium 26: Remove special chars
Problem: Medium 26: Remove special chars
[Link]("a@b#c!".replaceAll("[^a-zA-Z]",""));
Output: abc
Explanation: Regex.
Medium 27: Only digits?
Problem: Medium 27: Only digits?
[Link]("12345".matches("\\d+"));
Output: true
Explanation: Regex digits.
Medium 28: First non-repeating
Problem: Medium 28: First non-repeating
String s="swiss";
for(char c:[Link]()){
if([Link](c)==[Link](c)){
[Link](c); break;
}}
Output: w
Explanation: Unique char.
Medium 29: String rotation
Problem: Medium 29: String rotation
String s1="abc",s2="cab";
[Link]((s1+s1).contains(s2));
Output: true
Explanation: Rotation check.
Medium 30: Count uppercase
Problem: Medium 30: Count uppercase
int c=0;
for(char ch:"AbC".toCharArray())
if([Link](ch)) c++;
[Link](c);
Output: 2
Explanation: Uppercase count.
Medium 31: Count lowercase
Problem: Medium 31: Count lowercase
...
Output: ...
Explanation: ...
Medium 32: Remove vowels
Problem: Medium 32: Remove vowels
...
Output: ...
Explanation: ...
Medium 33: Swap words
Problem: Medium 33: Swap words
...
Output: ...
Explanation: ...
Medium 34: Longest word
Problem: Medium 34: Longest word
...
Output: ...
Explanation: ...
Medium 35: Count digits
Problem: Medium 35: Count digits
...
Output: ...
Explanation: ...
Medium 36: Reverse using StringBuilder
Problem: Medium 36: Reverse using StringBuilder
...
Output: ...
Explanation: ...
Medium 37: Check substring
Problem: Medium 37: Check substring
...
Output: ...
Explanation: ...
Medium 38: Replace words
Problem: Medium 38: Replace words
...
Output: ...
Explanation: ...
Medium 39: Count spaces
Problem: Medium 39: Count spaces
...
Output: ...
Explanation: ...
Medium 40: Remove duplicate words
Problem: Medium 40: Remove duplicate words
...
Output: ...
Explanation: ...
Hard 41: Longest substring without repeat
Problem: Hard 41: Longest substring without repeat
...
Output: ...
Explanation: Sliding window.
Hard 42: String compression
Problem: Hard 42: String compression
...
Output: ...
Explanation: Compression.
Hard 43: Minimum window substring
Problem: Hard 43: Minimum window substring
...
Output: ...
Explanation: Advanced.
Hard 44: K distinct chars
Problem: Hard 44: K distinct chars
...
Output: ...
Explanation: Window.
Hard 45: Group anagrams
Problem: Hard 45: Group anagrams
...
Output: ...
Explanation: HashMap.
Hard 46: Valid palindrome (ignore)
Problem: Hard 46: Valid palindrome (ignore)
...
Output: ...
Explanation: Clean + check.
Hard 47: String permutations
Problem: Hard 47: String permutations
...
Output: ...
Explanation: Backtracking.
Hard 48: Longest palindromic substring
Problem: Hard 48: Longest palindromic substring
...
Output: ...
Explanation: Expand center.
Hard 49: Multiply strings
Problem: Hard 49: Multiply strings
...
Output: ...
Explanation: Math logic.
Hard 50: Decode string
Problem: Hard 50: Decode string
...
Output: ...
Explanation: Stack.