Problem Statement:
Find occurrence of given char (Ignore case) in given string without iterating through string.
Input – Make Selenium Easy
Char – ‘M’
Output- Occurrence of M is 2.
Problem Solution:
We need to solve this problem without iterating through string in search of character. Its simple.
Logic step by step:
- FInd the initial length of given string.
- Replace desired char by empty character.
- Find the length of string after replacement.
- FInd the difference between initial and current length.
- The difference is occurrence of asked char in string.
Java Programs:
package StringPrograms;
import java.util.Scanner;
public class CountOfCharInGivenString {
public static int countOfChar(String inputString, char charToFind)
{
//Converting string into same case
inputString = inputString.toUpperCase();
// Converting char to upper case
String charString= Character.toString(charToFind).toUpperCase();
// Find length of actual string
int lengthBeforeReplacingSpace = inputString.length();
// Replace char to be searched for by empty character
inputString = inputString.replace(charString, "");
//FInd the new length after replacement
int lengthAfterReplacingSpace = inputString.length();
// FInd the difference
int countOfSpace = lengthBeforeReplacingSpace- lengthAfterReplacingSpace;
// return the difference which is actually occurrence of char
return countOfSpace;
}
public static void main(String[] args) {
// User input for the string to know length
Scanner sc = new Scanner(System.in);
System.out.println("Please enter the string :");
String userInput = sc.nextLine();
System.out.println("Please enter the char to find occurrence in : "+userInput);
char charToFind = sc.nextLine().charAt(0);
sc.close();
System.out.println("You entered: " + userInput);
System.out.println("Char to be found: " + charToFind);
System.out.println("Count of "+charToFind+" is :" + countOfChar(userInput,charToFind));
}
}
Output:
[java]
Please enter the string :
Make Selenium Easy
Please enter the char to find occurrence in : Make Selenium Easy
m
You entered: Make Selenium Easy
Char to be found: m
Count of m is :2
=================================================================
Please enter the string :
Autoation Tester
Please enter the char to find occurrence in : Autoation Tester
T
You entered: Autoation Tester
Char to be found: T
Count of T is :4
=================================================================
[/java]
#HappyCoding
We can also use HashMap to get the occurrences of a given char
There is a another easy way for the same question:
Please give your suggesion on this:
package basicJava;
import java.util.Scanner;
public class OccuOfCharInString {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(“Enter the String :”);
Scanner scan = new Scanner(System.in);
String str=scan.nextLine();
System.out.println(“Enter the chat need to find the occurance:”);
char ch=scan.nextLine().charAt(0);
int count=0;
for(int i=0;i<str.length();i++) {
if(ch==str.charAt(i)) {
count++;
}
}
System.out.println("The total number of occurance of given char is "+count);
}
}
Very easy and straight forward. As we say and know there are always multiple answers to a question.