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.