Java String Tokens-HackerRank Solution

0

Given a string,s, matching the regular expression [A-Za-z !,?._'@]+, split the string into tokens. We define a token to be one or more consecutive English alphabetic letters. Then, print the number of tokens, followed by each token on a new line.

 


 

Note: You may find the String.split method helpful in completing this challenge.


Input Format


A single string,s.


Constraints


1 <= length of s <= 4.10^5 

s is composed of any of the following: English alphabetic letters, blank spaces, exclamation points (!), commas (,), question marks (?), periods (.), underscores (_), apostrophes ('), and at symbols (@).


Output Format


On the first line, print an integer,n , denoting the number of tokens in string s (they do not need to be unique). Next, print each of the n tokens on a new line in the same order as they appear in input string .


Sample Input


He is a very very good boy, isn't he?


Sample Output


10

He

is

a

very

very

good

boy

isn

t

he


Explanation

We consider a token to be a contiguous segment of alphabetic characters. There are a total of 10 such tokens in string s, and each token is printed in the same order in which it appears in string s.


Solution


import java.io.*;

import java.util.*;


public class Solution {


    public static void main(String[] args) {

        /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */

  Scanner scan = new Scanner(System.in);

        String input = scan.nextLine().trim();

        scan.close();

        

        String[] tokens = input.split("[^\\p{Alpha}]+");

        

        int size = (input.isEmpty()) ? 0 : tokens.length;

        System.out.println(size);

        

        for(String s : tokens) {

            System.out.println(s);

        }

    }

}

Post a Comment

0 Comments
* Please Don't Spam Here. All the Comments are Reviewed by Admin.
Post a Comment (0)
Our website uses cookies to enhance your experience. Learn More
Accept !