Accept String using Scanner and count its special character in Java

Published by user on

In this post, we will look at how to accept String using scanner and count the number of special characters in it.

Logic:

Let’s see how to do it.

We classify a character as a special char when,

  • It is not an alphabet, this includes both upper and lower case
  • It is not a digit

Program to count Special Character

import java.util.Scanner;

// Java code to demonstrate
// how to count special
// characters in a string using scanner
public class SpecialCharacterCounter {

	public static void main(String[] args) {
		// create the scanner
		Scanner scanner = new Scanner(System.in);
		System.out.println("Enter the string with special character = ");

		// scan the input string
		String input = scanner.nextLine();

		int counter = 0;

		for (int i = 0; i < input.length(); i++) {
			// check if the given character
			// is a special character
			if (isSpecialChar(input.charAt(i))) {
				counter++;
			}
		}
		System.out.println("Count of special character = " + counter);

		// close the scanner
		scanner.close();
	}

	// returns true if the input
	// is a special character
	public static boolean isSpecialChar(char ch) {
		boolean isSpecialChar;
		// check if ch is alphabet
		if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
			isSpecialChar = false;
		} else if (ch >= '0' && ch <= '9') {
			isSpecialChar = false;
		} else {
			// passed character is a
			// special character
			// as it is neither alphabet
			// nor digit
			isSpecialChar = true;
		}
		return isSpecialChar;
	}
}

Output:

Enter the string with special character = 
This%is@a$String*With&Special^Character
Count of special character = 6
Categories: Java