> 개발-IT-인터넷/> JAVA

[해커랭크(HackerRank) JAVA 풀이] - Java String Tokens

jini:) 2021. 10. 1. 17:23
728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > Strings > Java String Tokens
 

HackerRank

HackerRank is the market-leading technical assessment and remote interview solution for hiring developers. Learn how to hire technical talent from anywhere!

www.hackerrank.com

 

정규식 [A-Za-z !,?._'@]+와 일치하는 문자열 s가 주어지면 문자열을 토큰으로 분할합니다. 우리는 토큰을 하나 이상의 연속적인 영어 알파벳으로 정의합니다. 그런 다음 새 줄에 각 토큰이 오는 토큰 수를 출력합니다.

Note : 이 챌린지를 완료하는 데 String.split 메서드가 도움이 될 수 있습니다.

 

Input Format

단일 문자열, s.

 

Constraints

  • 1 ≤ length of s ≤ 4 · 10⁵
  • s는 영문자, 공백, 느낌표(!), 쉼표(,), 물음표(?), 마침표(.), 밑줄(_), 아포스트로피(') 및 at 기호(@).

 

Output Format

첫 번째 줄에 문자열 s의 토큰 수를 나타내는 정수 n을 출력합니다(고유할 필요는 없습니다). 다음으로, 입력 문자열 s에 나타나는 것과 같은 순서로 새 줄에 n개의 토큰을 각각 출력합니다.

 

 

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

우리는 토큰을 알파벳 문자의 연속적인 부분으로 간주합니다. 문자열 s에는 총 10개의 이러한 토큰이 있으며 각 토큰은 문자열 s에 나타나는 것과 동일한 순서로 인쇄됩니다.

 

 

Code 

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();
        
        // Write your code here.
        if (s.trim().length() >= 1 || s.trim().length() >= 400000) {
            String[] str = s.trim().split("[ !,?._'@]+");
            System.out.println(str.length);
            for(int i = 0; i < str.length; i += 1) {
                System.out.println(str[i]);
            }
        } else {
            System.out.println("0");
        }
        
        scan.close();
    }
}

 

 

 

개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.

 

 

 

728x90
반응형