Extracting each word from a String using Regex in Java

Given a string, extract words from it. “Words” are defined as contiguous strings of alphabetic characters i.e. any upper or lower case characters a-z or A-Z.

Examples:

Input : Funny?? are not you?
Output : Funny
         are
         not
         you

Input : Beginner for Beginner?? 
Output : Beginner
         for
         Beginner

We have discussed a solution for C++ in this post : Program to extract words from a given String

In this post, we will discuss Regular Expression approach for doing the same. This approach is best in terms of Time Complexity and is also used for large input files. Below is the regular expression for any word.

[a-zA-Z]+




// Java program to demonstrate extracting words
// from string using Regex
  
import java.util.regex.Matcher;
import java.util.regex.Pattern;
  
public class Test 
{
    public static void main(String[] args) 
    {
        String s1 = "Beginner for Beginner";
        String s2 = "A Computer Science Portal for Beginner";
          
        Pattern p = Pattern.compile("[a-zA-Z]+");
          
        Matcher m1 = p.matcher(s1);
        Matcher m2 = p.matcher(s2);
          
        System.out.println("Words from string \"" + s1 + "\" : ");
        while (m1.find()) {
            System.out.println(m1.group());
        }
          
        System.out.println("Words from string \"" + s2 + "\" : ");
        while (m2.find()) {
            System.out.println(m2.group());
        }
          
    }
}


Output:

Words from string "Beginner for Beginner" : 
Beginner
for
Beginner
Words from string "A Computer Science Portal for Beginner" : 
A
Computer
Science
Portal
for
Beginner

Contact Us