Java Practice Questions & Solutions - Strings and Arrays
String 1: Reverse a String
String input = "hello";
String reversed = new StringBuilder(input).reverse().toString();
[Link]("Reversed: " + reversed);
String 2: Check Palindrome
String str = "madam";
String rev = new StringBuilder(str).reverse().toString();
[Link]([Link](rev));
String 3: Count vowels and consonants
String input = "Automation".toLowerCase();
int vowels = 0, consonants = 0;
for(char c : [Link]()) {
if("aeiou".indexOf(c) >= 0) vowels++;
else if([Link](c)) consonants++;
}
[Link]("Vowels: " + vowels + ", Consonants: " + consonants);
String 4: Remove spaces
String input = "Java is fun";
String result = [Link](" ", "");
[Link](result);
String 5: Capitalize each word
String[] words = "appium automation".split(" ");
StringBuilder sb = new StringBuilder();
for(String w : words)
[Link]([Link]([Link](0))).append([Link](1)).append(" ");
[Link]([Link]().trim());
String 6: Find duplicate characters
String input = "chayann";
Map<Character, Integer> map = new HashMap<>();
for(char c : [Link]()) [Link](c, [Link](c, 0) + 1);
for(var e : [Link]()) if([Link]() > 1) [Link]([Link]());
String 7: First non-repeated character
String input = "swiss";
Map<Character, Integer> map = new LinkedHashMap<>();
for(char c : [Link]()) [Link](c, [Link](c, 0) + 1);
for(var e : [Link]()) { if([Link]() == 1) { [Link]([Link]());
break; } }
String 8: Frequency of characters
String input = "apple";
Map<Character, Integer> freq = new HashMap<>();
for(char c : [Link]()) [Link](c, [Link](c, 0) + 1);
[Link](freq);
String 9: Check Anagram
String a = "listen", b = "silent";
char[] ac = [Link](), bc = [Link]();
[Link](ac); [Link](bc);
[Link]([Link](ac, bc));
String 10: Swap strings without third variable
String a = "hello", b = "world";
a = a + b;
b = [Link](0, [Link]() - [Link]());
a = [Link]([Link]());
[Link]("a: " + a + ", b: " + b);
String 11: Print all substrings
String input = "abc";
for(int i = 0; i < [Link](); i++)
for(int j = i + 1; j <= [Link](); j++)
[Link]([Link](i, j));
String 12: Reverse only words
String input = "Hello world";
String[] words = [Link](" ");
for(String w : words) [Link](new StringBuilder(w).reverse() + " ");
String 13: Sum of digits in string
String input = "a1b2c3";
int sum = 0;
for(char c : [Link]()) if([Link](c)) sum += c - '0';
[Link]("Sum: " + sum);
String 14: Check if string has only digits
String input = "12345";
[Link]([Link]("\\d+"));
String 15: Find longest word
String input = "find the longest word";
String[] words = [Link](" ");
String longest = "";
for(String w : words) if([Link]() > [Link]()) longest = w;
[Link]("Longest: " + longest);
Array 1: Max and Min
int[] arr = {3, 7, 2, 9};
int max = arr[0], min = arr[0];
for(int n : arr) { if(n > max) max = n; if(n < min) min = n; }
[Link]("Max: " + max + ", Min: " + min);
Array 2: Sum of elements
int[] arr = {1, 2, 3};
int sum = 0;
for(int n : arr) sum += n;
[Link]("Sum: " + sum);
Array 3: Reverse array
int[] arr = {1, 2, 3};
for(int i = [Link] - 1; i >= 0; i--) [Link](arr[i] + " ");
Array 4: Even and Odd elements
int[] arr = {1, 2, 3, 4};
for(int n : arr) [Link](n + " is " + (n%2==0?"Even":"Odd"));
Array 5: Count positive/negative/zero
int[] arr = {1, -2, 0, 3};
int pos=0, neg=0, zero=0;
for(int n : arr) { if(n>0) pos++; else if(n<0) neg++; else zero++; }
[Link]("Pos: " + pos + ", Neg: " + neg + ", Zero: " + zero);
Array 6: Find duplicates
int[] arr = {1, 2, 3, 2};
Set<Integer> seen = new HashSet<>();
for(int n : arr) { if() [Link]("Duplicate: " + n); }
Array 7: Remove duplicates
int[] arr = {1, 2, 2, 3};
Set<Integer> set = new LinkedHashSet<>();
for(int n : arr) [Link](n);
[Link](set);
Array 8: Sort without sort()
int[] arr = {5, 2, 8};
for(int i=0;i<[Link];i++)
for(int j=i+1;j<[Link];j++)
if(arr[i]>arr[j]) { int t=arr[i]; arr[i]=arr[j]; arr[j]=t; }
[Link]([Link](arr));
Array 9: Check palindrome
int[] arr = {1, 2, 1};
boolean isPal = true;
for(int i=0;i<[Link]/2;i++)
if(arr[i] != arr[[Link]-1-i]) isPal = false;
[Link](isPal);
Array 10: Second largest/smallest
int[] arr = {1, 3, 2};
[Link](arr);
[Link]("2nd Smallest: " + arr[1] + ", 2nd Largest: " + arr[[Link]-2]);