Hello coders, today we are going to solve Java String Tokens HackerRank Solution.
Problem
Given a string, n, matching the regular expression [A-Z, a-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.105
- 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 s.
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 – Java String Tokens
import java.io.*; import java.util.*; public class Solution { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String s = scan.nextLine(); scan.close(); // Write your code here. s = s.trim(); if (s.length() == 0) { System.out.println(0); } else { String[] strings = s.split("['!?,._@ ]+"); System.out.println(strings.length); for (String str : strings) System.out.println(str); } } }
Disclaimer: The above Problem ( Java String Tokens ) is generated by Hacker Rank but the Solution is Provided by CodingBroz. This tutorial is only for Educational and Learning Purpose.
why we have to check s.length==0
why is changing the order of the parameter in split fuction resulting in an error