The Java Regex or Regular Expression is an API to define pattern for searching or manipulating strings.
It is widely used to define constraint on strings such as password and email validation. After learning java regex tutorial, you will be able to test your own regular expressions by the Java Regex Tester Tool.
Java Regex API provides 1 interface and 3 classes in java.util.regex package.
It provides following classes and interface for regular expressions. The Matcher and Pattern classes are widely used in java regular expression.
It implements MatchResult interface. It is a regex engine i.e. used to perform match operations on a character sequence.
|1||boolean matches()||test whether the regular expression matches the pattern.|
|2||boolean find()||finds the next expression that matches the pattern.|
|3||boolean find(int start)String group()||finds the next expression that matches the pattern from the given start number.|
|4||String group()||returns the matched subsequence.|
|5||int start()||returns the starting index of the matched subsequence.|
|6||int end()||returns the ending index of the matched subsequence.|
|7||int groupCount()||returns the total number of the matched subsequence.|
The java instanceof operator is used to test whether the object is an instance of the specified type (class or subclass or interface).
The instanceof in java is also known as type comparison operator because it compares the instance with type. It returns either true or false. If we apply the instanceof operator with any variable that has null value, it returns false.
Let's see the simple example of instance operator where it tests the current class.
An object of subclass type is also a type of parent class. For example, if Dog extends Animal then object of Dog can be referred by either Dog or Animal class.
If we apply instanceof operator with a variable that have null value, it returns false. Let's see the example given below where we apply instanceof operator with the variable that have null value.
When Subclass type refers to the object of Parent class, it is known as downcasting. If we perform it directly, compiler gives Compilation error. If you perform it by typecasting, ClassCastException is thrown at runtime. But if we use instanceof operator, downcasting is possible.
Dog d=new Animal();//Compilation error
If we perform downcasting by typecasting, ClassCastException is thrown at runtime.
Dog d=(Dog)new Animal();
//Compiles successfully but ClassCastException is thereown at runtime
Let's see the example, where downcasting is possible by instanceof operator.
Downcasting can also be performed without the use of instanceof operator as displayed in the following example:
Let's take closer look at this, actual object that is referred by a, is an object of Dog class. So if we downcast it, it is fine. But what will happen if we write:
Let's see the real use of instanceof keyword by the example given below.