Special characters are those characters that are neither a letter nor a number. Whitespace is also not considered a special character. Examples of special characters are:- !(exclamation mark), , (comma), #(hash), etc.
Methods:
- Using Character class
- Using regular expressions
- Using contains() method
Method 1: Using Character class
The approach is as follows:
- Iterate through all the characters of the string.
- Alongside we will be checking each character for being a letter, a digit, or whitespace using the java character class.
- It is found to be none of the above signifying special characters.
- Parallelly we will maintain a counter for special character count.
- Lastly, print and display the required count or special characters as per the need.
Example
Java
// Java Program to Check Whether String contains Special // Characters Using Character Class // Importing input output classes import java.io.*;
// Main class class GFG {
// Method 1
// Main driver method
public static void main(String[] args)
{
// Declaring and initializing count for
// special characters
int count = 0 ;
// Input custom string
String s
= "!#$GeeeksforGeeks.Computer.Science.Portal!!" ;
// Iterating through the string
// using standard length() method
for ( int i = 0 ; i < s.length(); i++) {
// Checking the character for not being a
// letter,digit or space
if (!Character.isDigit(s.charAt(i))
&& !Character.isLetter(s.charAt(i))
&& !Character.isWhitespace(s.charAt(i))) {
// Incrementing the countr for spl
// characters by unity
count++;
}
}
// When there is no special character encountered
if (count == 0 )
// Display the print statement
System.out.println(
"No Special Characters found." );
else
// Special character/s found then
// Display the print statement
System.out.println(
"String has Special Characters\n" + count + " "
+ "Special Characters found." );
}
} |
Output
String has Special Characters 8 Special Characters found.
Time Complexity: O(N)
Auxiliary Space: O(N)
Method 2: Using regular expressions
- Create a regular expression that does not match any letters, digits, or whitespace.
- We will use Matcher class in accordance with regular expression with our input string.
- Now, if there exist any ‘character matches’ with the regular expression then the string contains special characters otherwise it does not contain any special characters.
- Print the result.
Java
// Java Program to Check Whether String contains Special // Characters using Regex classes // Importing regex classes from java.util package to // match a specific pattern import java.util.regex.Matcher;
import java.util.regex.Pattern;
// Main class public class GFG {
// Main driver method
public static void main(String[] args)
{
// Declaring and initializing strings randomly
// with input characters
// Custom Input as String 1
String s1 = "GeeksForGeeks" ;
// Creating regex pattern by
// creating object of Pattern class
Pattern p = Pattern.compile(
"[^a-z0-9 ]" , Pattern.CASE_INSENSITIVE);
// Creating matcher for above pattern on our string
Matcher m = p.matcher(s1);
// Now finding the matches for which
// let us set a boolean flag and
// imposing find() method
boolean res = m.find();
// Output will be based on boolean flag
// If special characters are found
if (res)
// Display this message on the console
System.out.println(
"String1 contains Special Characters" );
// If we reach here means no special characters are
// found
else
// Display this message on the console
System.out.println(
"No Special Characters found in String 1" );
// Custom Input as String 2
String s2 = "!!Geeks.For.Geeks##" ;
// Creating matcher for above pattern on our string
// by creating object of matcher class
Matcher m2 = p.matcher(s2);
// Finding the matches using find() method
boolean res2 = m2.find();
// If matches boolean returns true
if (res2)
// Then print and display that special
// characters are found
System.out.println(
"String 2 contains Special Characters" );
// If not
else
// Then Display the print statement below
System.out.println(
"No Special Characters found in String 2" );
}
} |
Output
No Special Characters found in String 1 String 2 contains Special Characters
Time Complexity: O(N)
Auxiliary Space: O(N)
Method 3 : Using contains() method
Java
// Java Program to Check Whether String contains Special Characters import java.io.*;
import java.util.*;
// Main class class Main{
// Method 1
// Main driver method
public static void main(String[] args)
{
// Declaring and initializing count for
// special characters
int count = 0 ;
ArrayList<Character> a = new ArrayList<Character>();
String b= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" ;
for ( int i= 0 ;i<b.length();i++)
{
a.add(b.charAt(i));
}
// Input custom string
String s = "!#$GeeeksforGeeks.Computer.Science.Portal!!" ;
// Iterating through the string
// using standard length() method
for ( int i = 0 ; i < s.length(); i++) {
// Checking the character for not being a
// letter,digit or space
if (!a.contains(s.charAt(i)) && !Character.isWhitespace(s.charAt(i))) {
// Incrementing the countr for spl
// characters by unity
count++;
}
}
// When there is no special character encountered
if (count == 0 )
// Display the print statement
System.out.println( "No Special Characters found." );
else
// Special character/s found then
// Display the print statement
System.out.println( "String has Special Characters\n" + count + " " + "Special Characters found." );
}
} |
Output
String has Special Characters 8 Special Characters found.