📘 Premium Read: Access my best content on Medium member-only articles — deep dives into Java, Spring Boot, Microservices, backend architecture, interview preparation, career advice, and industry-standard best practices.
🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (176K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
The match()
method in Java, part of the java.util.Scanner
class, returns a MatchResult
object that provides information about the last match operation performed by the scanner.
Table of Contents
- Introduction
match()
Method Syntax- Understanding
match()
- Examples
- Basic Usage
- Extracting Match Information
- Real-World Use Case
- Conclusion
Introduction
The match()
method returns a MatchResult
object containing detailed information about the last matching operation performed by the Scanner
. This is useful for extracting details such as the start and end positions of the match and the matched substring.
match() Method Syntax
The syntax for the match()
method is as follows:
public MatchResult match()
Parameters:
- This method does not take any parameters.
Returns:
- A
MatchResult
object with information about the last match.
Throws:
IllegalStateException
: If no match has been performed yet.
Understanding match()
The match()
method is used after a successful scanning operation, such as hasNext()
or next()
, to retrieve the MatchResult
of the last match. It provides detailed information about the match, including start and end positions and the matched string.
Examples
Basic Usage
To demonstrate the basic usage of match()
, we will create a Scanner
object and perform a matching operation, then retrieve the match details.
Example
import java.util.Scanner; import java.util.regex.MatchResult; public class MatchExample { public static void main(String[] args) { String input = "apple banana cherry"; // Create Scanner object in try-with-resources to ensure it closes automatically try (Scanner scanner = new Scanner(input)) { while (scanner.hasNext()) { String token = scanner.next(); System.out.println("Token: " + token); // Retrieve the match result MatchResult match = scanner.match(); System.out.println("Match start: " + match.start()); System.out.println("Match end: " + match.end()); } } // Scanner is automatically closed here } }
Output:
Token: apple Match start: 0 Match end: 5 Token: banana Match start: 6 Match end: 12 Token: cherry Match start: 13 Match end: 19
Extracting Match Information
This example shows how to extract detailed match information using the match()
method.
Example
import java.util.Scanner; import java.util.regex.MatchResult; public class ExtractMatchInfoExample { public static void main(String[] args) { String input = "apple123 banana456 cherry789"; // Create Scanner object in try-with-resources to ensure it closes automatically try (Scanner scanner = new Scanner(input)) { while (scanner.hasNext("\\w+\\d+")) { String token = scanner.next(); System.out.println("Token: " + token); // Retrieve the match result MatchResult match = scanner.match(); System.out.println("Matched text: " + match.group()); System.out.println("Match start: " + match.start()); System.out.println("Match end: " + match.end()); } } // Scanner is automatically closed here } }
Output:
Token: apple123 Matched text: apple123 Match start: 0 Match end: 8 Token: banana456 Matched text: banana456 Match start: 9 Match end: 18 Token: cherry789 Matched text: cherry789 Match start: 19 Match end: 28
Real-World Use Case
Parsing Structured Text
In real-world applications, the match()
method can be used to parse structured text, such as log files or formatted data, where extracting detailed match information is crucial.
Example
import java.util.Scanner; import java.util.regex.MatchResult; public class LogParser { public static void main(String[] args) { String log = "ERROR 2023-06-24: Connection lost\nINFO 2023-06-25: Connection restored"; // Create Scanner object in try-with-resources to ensure it closes automatically try (Scanner scanner = new Scanner(log)) { while (scanner.hasNextLine()) { String line = scanner.nextLine(); try (Scanner lineScanner = new Scanner(line)) { if (lineScanner.hasNext("(ERROR|INFO)\\s\\d{4}-\\d{2}-\\d{2}:\\s.+")) { String token = lineScanner.next(); MatchResult match = lineScanner.match(); System.out.println("Log entry: " + token); System.out.println("Matched text: " + match.group()); System.out.println("Match start: " + match.start()); System.out.println("Match end: " + match.end()); } } } } // Scanner is automatically closed here } }
Output:
Log entry: ERROR Matched text: ERROR 2023-06-24: Connection lost Match start: 0 Match end: 32 Log entry: INFO Matched text: INFO 2023-06-25: Connection restored Match start: 0 Match end: 34
Conclusion
The Scanner.match()
method provides a way to retrieve detailed information about the last match operation performed by the Scanner
. It is useful for extracting match details such as start and end positions and the matched substring. Always close the Scanner
using try-with-resources to ensure proper resource management.
Comments
Post a Comment
Leave Comment