split, regular expression, filter
문제 상세보기
Flow.
- 문자열을 !,?._’ 과 공백 기준으로 스플릿하고 토큰의 갯수와 각 토큰을 프린트하는 알고리즘입니다.
- 정규표현식 [!,?._’@\s] 을 사용해서 문자열을 나누어 줍니다.
- 특수문자 기준으로 나눈 토큰에 공백 요소가 포함되어 있는 경우가 있습니다.
- stream filter를 사용해서 공백이 아닌것만 리스트로 컬렉트 해줍니다.
- 컬렉트된 리스트의 크기와 각 요소를 출력해줍니다.
Code.
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;
public class String_Tokens {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String[] tokens = scan.nextLine().split("[!,?._'@\\s]");
List<String> collect = Arrays.stream(tokens)
.filter(i -> !i.equals(""))
.collect(Collectors.toList());
System.out.println(collect.size());
collect.forEach(System.out::println);
scan.close();
}
}
Leave a comment